import { StreamMode, StreamStatus, ConsumerStatus, DescribeStreamSummaryCommandInput, DescribeStreamSummaryCommandOutput, StreamDescriptionSummary, ListStreamConsumersCommandOutput, ListStreamConsumersInput, Consumer } from '@aws-sdk/client-kinesis';
import { BaseState, TranslatedEntity, State, WithCallContext } from '@infrascan/shared-types';

interface StreamDetails {
    mode?: Lowercase<StreamMode>;
    status?: Lowercase<StreamStatus>;
}
interface ConsumerDetails {
    status?: Lowercase<ConsumerStatus>;
}
type KinesisStream = BaseState<DescribeStreamSummaryCommandInput> & {
    kinesis: {
        stream?: StreamDetails;
        consumer?: ConsumerDetails;
    };
};
declare const KinesisStreamEntity: TranslatedEntity<KinesisStream, State<DescribeStreamSummaryCommandOutput, DescribeStreamSummaryCommandInput>, WithCallContext<StreamDescriptionSummary, DescribeStreamSummaryCommandInput>>;
type KinesisConsumer = BaseState<DescribeStreamSummaryCommandInput> & {
    kinesis: {
        status?: Lowercase<ConsumerStatus>;
    };
};
declare const KinesisConsumerEntity: TranslatedEntity<KinesisStream, State<ListStreamConsumersCommandOutput, ListStreamConsumersInput>, WithCallContext<Consumer, ListStreamConsumersInput>>;

export { type ConsumerDetails, type KinesisConsumer, KinesisConsumerEntity, type KinesisStream, KinesisStreamEntity, type StreamDetails };
