/** @experimental */ export interface AssetGroup { installMode?: 'prefetch' | 'lazy'; name: string; resources: { files?: Glob[]; versionedFiles?: Glob[]; urls?: Glob[]; }; updateMode?: 'prefetch' | 'lazy'; } /** @experimental */ export interface Config { appData?: {}; assetGroups?: AssetGroup[]; dataGroups?: DataGroup[]; index: string; } /** @experimental */ export interface DataGroup { cacheConfig: { maxSize: number; maxAge: Duration; timeout?: Duration; strategy?: 'freshness' | 'performance'; }; name: string; urls: Glob[]; version?: number; } /** @experimental */ export declare type Duration = string; /** @experimental */ export interface Filesystem { hash(file: string): Promise; list(dir: string): Promise; read(file: string): Promise; write(file: string, contents: string): Promise; } /** @experimental */ export declare class Generator { readonly fs: Filesystem; constructor(fs: Filesystem, baseHref: string); process(config: Config): Promise; } /** @experimental */ export declare type Glob = string;