import { TypeShape } from '@punchcard/shape';
import { ElasticSearch, Glue, Kinesis, S3 } from 'punchcard';
import { IndexSettings } from 'punchcard/lib/elasticsearch';
import type { DataLake } from './data-lake';
import { Period } from './period';
import { Schema } from './schema';
export interface DataPipelineProps<T extends TypeShape, TS extends keyof T['Members'], ID extends keyof T['Members']> {
    schema: Schema<T, TS, ID>;
    indexSettings?: IndexSettings;
}
export declare class DataPipeline<T extends TypeShape, TS extends keyof T['Members'], ID extends keyof T['Members']> {
    readonly dataLake: DataLake;
    readonly bucket: S3.Bucket;
    readonly stream: Kinesis.Stream<T>;
    readonly table: Glue.Table<T, Period.PT1M>;
    readonly index: ElasticSearch.Index<T, ID>;
    constructor(dataLake: DataLake, id: string, props: DataPipelineProps<T, TS, ID>);
}
//# sourceMappingURL=data-pipeline.d.ts.map