///
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;
}