/// import { S3 } from 'aws-sdk'; export declare type S3PutModifier = Partial; export declare type S3DeleteModifier = Partial; export interface FilterOptions { include?: string; exclude?: string; } export interface Item { key: string; modtime: Date; size: number; isSymbolicLink: boolean; read(): Promise; } export declare type ContainerType = 'FILE' | 'S3'; export interface ListItemsOptions extends FilterOptions { } export interface PutItemOptions { s3Options?: S3PutModifier; } export interface DelItemOptions { s3Options?: S3DeleteModifier; } export interface Container { type: ContainerType; listItems(options?: ListItemsOptions): Promise; putItem(item: Item, options?: PutItemOptions): Promise; delItem(item: Item, options?: DelItemOptions): Promise; } export declare type ItemDiffType = 'UPDATE' | 'CREATE' | 'DELETE'; export declare type ItemDiffUpdate = { type: 'UPDATE'; key: string; source: Item; target: Item; }; export declare type ItemDiffCreate = { type: 'CREATE'; key: string; source: Item; }; export declare type ItemDiffDelete = { type: 'DELETE'; key: string; target: Item; }; export declare type ItemDiff = ItemDiffUpdate | ItemDiffCreate | ItemDiffDelete; export interface Invalidation { path: string; forDiff: ItemDiff; }