import { Database } from '@aws-cdk/aws-glue';
import { TypeShape } from '@punchcard/shape';
import { ElasticSearch } from 'punchcard';
import { Build } from 'punchcard/lib/core/build';
import { Construct, Scope } from 'punchcard/lib/core/construct';
import { IndexSettings } from 'punchcard/lib/elasticsearch';
import { DataPipeline } from './data-pipeline';
export interface DataLakeProps {
    lakeName: string;
    domain?: ElasticSearch.Domain;
}
export declare class DataLake extends Construct {
    readonly database: Build<Database>;
    readonly domain: ElasticSearch.Domain;
    constructor(_scope: Scope, id: string, props: DataLakeProps);
    addDataType<T extends TypeShape<any, string>, TS extends keyof T['Members'], ID extends keyof T['Members']>(props: DataTypeProps<T, TS, ID>): DataPipeline<T, TS, ID>;
}
export interface DataTypeProps<T extends TypeShape<any, string>, TS extends keyof T['Members'], ID extends keyof T['Members']> {
    id: ID;
    type: T;
    timestamp: TS;
    indexSettings?: IndexSettings;
}
//# sourceMappingURL=data-lake.d.ts.map