import * as cdk from "@aws-cdk/core"; import * as kinesis from "@aws-cdk/aws-kinesis"; import * as lambdaEventSources from "@aws-cdk/aws-lambda-event-sources"; import { Function as Fn, FunctionProps, FunctionDefinition } from "./Function"; import { Permissions } from "./util/permission"; export interface KinesisStreamProps { readonly kinesisStream?: kinesis.IStream | kinesis.StreamProps; readonly consumers?: { [consumerName: string]: FunctionDefinition | KinesisStreamConsumerProps; }; readonly defaultFunctionProps?: FunctionProps; } export interface KinesisStreamConsumerProps { readonly function: FunctionDefinition; readonly consumerProps?: lambdaEventSources.KinesisEventSourceProps; } export declare class KinesisStream extends cdk.Construct { readonly kinesisStream: kinesis.IStream; private functions; private readonly permissionsAttachedForAllConsumers; private readonly defaultFunctionProps?; constructor(scope: cdk.Construct, id: string, props?: KinesisStreamProps); get streamArn(): string; get streamName(): string; addConsumers(scope: cdk.Construct, consumers: { [consumerName: string]: FunctionDefinition | KinesisStreamConsumerProps; }): void; attachPermissions(permissions: Permissions): void; attachPermissionsToConsumer(consumerName: string, permissions: Permissions): void; getFunction(consumerName: string): Fn | undefined; private addConsumer; }