import { Request, Kinesis as AWSKinesis } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSKinesis> = AWSKinesis[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSKinesis, Extras> = AWSKinesis[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Kinesis {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "kinesis";
    readonly global: false;
    readonly category: "Analytics";
    readonly topLevelCalls: readonly ["listStreams"];
    addTagsToStream: (params: ParamsFrom<'addTagsToStream', Record<string, never>>) => Promise<ReturnTypeFrom<'addTagsToStream'>>;
    createStream: (params: ParamsFrom<'createStream', Record<string, never>>) => Promise<ReturnTypeFrom<'createStream'>>;
    decreaseStreamRetentionPeriod: (params: ParamsFrom<'decreaseStreamRetentionPeriod', Record<string, never>>) => Promise<ReturnTypeFrom<'decreaseStreamRetentionPeriod'>>;
    deleteStream: (params: ParamsFrom<'deleteStream', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteStream'>>;
    deregisterStreamConsumer: (params: ParamsFrom<'deregisterStreamConsumer', Record<string, never>>) => Promise<ReturnTypeFrom<'deregisterStreamConsumer'>>;
    describeLimits: (params: ParamsFrom<'describeLimits', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLimits'>>;
    describeStream(params: {
        [K in keyof ParamsFrom<'describeStream', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeStream', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeStream'>]-?: ReturnTypeFrom<'describeStream'>[K];
        }['StreamDescription']['Shards'];
    }>;
    describeStreamConsumer: (params: ParamsFrom<'describeStreamConsumer', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStreamConsumer'>>;
    describeStreamSummary: (params: ParamsFrom<'describeStreamSummary', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStreamSummary'>>;
    disableEnhancedMonitoring: (params: ParamsFrom<'disableEnhancedMonitoring', Record<string, never>>) => Promise<ReturnTypeFrom<'disableEnhancedMonitoring'>>;
    enableEnhancedMonitoring: (params: ParamsFrom<'enableEnhancedMonitoring', Record<string, never>>) => Promise<ReturnTypeFrom<'enableEnhancedMonitoring'>>;
    getRecords: (params: ParamsFrom<'getRecords', Record<string, never>>) => Promise<ReturnTypeFrom<'getRecords'>>;
    getShardIterator: (params: ParamsFrom<'getShardIterator', Record<string, never>>) => Promise<ReturnTypeFrom<'getShardIterator'>>;
    increaseStreamRetentionPeriod: (params: ParamsFrom<'increaseStreamRetentionPeriod', Record<string, never>>) => Promise<ReturnTypeFrom<'increaseStreamRetentionPeriod'>>;
    listShards: (params: ParamsFrom<'listShards', Record<string, never>>) => Promise<ReturnTypeFrom<'listShards'>>;
    listStreamConsumers: (params: ParamsFrom<'listStreamConsumers', Record<string, never>>) => Promise<ReturnTypeFrom<'listStreamConsumers'>>;
    listStreams(params: {
        [K in keyof ParamsFrom<'listStreams', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listStreams', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStreams'>]-?: ReturnTypeFrom<'listStreams'>[K];
        }['StreamNames'];
    }>;
    listTagsForStream: (params: ParamsFrom<'listTagsForStream', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForStream'>>;
    mergeShards: (params: ParamsFrom<'mergeShards', Record<string, never>>) => Promise<ReturnTypeFrom<'mergeShards'>>;
    putRecord: (params: ParamsFrom<'putRecord', Record<string, never>>) => Promise<ReturnTypeFrom<'putRecord'>>;
    putRecords: (params: ParamsFrom<'putRecords', Record<string, never>>) => Promise<ReturnTypeFrom<'putRecords'>>;
    registerStreamConsumer: (params: ParamsFrom<'registerStreamConsumer', Record<string, never>>) => Promise<ReturnTypeFrom<'registerStreamConsumer'>>;
    removeTagsFromStream: (params: ParamsFrom<'removeTagsFromStream', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTagsFromStream'>>;
    splitShard: (params: ParamsFrom<'splitShard', Record<string, never>>) => Promise<ReturnTypeFrom<'splitShard'>>;
    startStreamEncryption: (params: ParamsFrom<'startStreamEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'startStreamEncryption'>>;
    stopStreamEncryption: (params: ParamsFrom<'stopStreamEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'stopStreamEncryption'>>;
    updateShardCount: (params: ParamsFrom<'updateShardCount', Record<string, never>>) => Promise<ReturnTypeFrom<'updateShardCount'>>;
    updateStreamMode: (params: ParamsFrom<'updateStreamMode', Record<string, never>>) => Promise<ReturnTypeFrom<'updateStreamMode'>>;
    static fromClient(client: AWSKinesis): Kinesis;
    static client(options?: AWSKinesis.Types.ClientConfiguration): Kinesis;
}
export {};
