import { Request, Firehose as AWSFirehose } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSFirehose> = AWSFirehose[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSFirehose, Extras> = AWSFirehose[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Firehose {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "firehose";
    readonly global: false;
    readonly category: "Application Integration";
    readonly topLevelCalls: readonly [];
    createDeliveryStream: (params: ParamsFrom<'createDeliveryStream', Record<string, never>>) => Promise<ReturnTypeFrom<'createDeliveryStream'>>;
    deleteDeliveryStream: (params: ParamsFrom<'deleteDeliveryStream', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDeliveryStream'>>;
    describeDeliveryStream: (params: ParamsFrom<'describeDeliveryStream', Record<string, never>>) => Promise<ReturnTypeFrom<'describeDeliveryStream'>>;
    listDeliveryStreams: (params: ParamsFrom<'listDeliveryStreams', Record<string, never>>) => Promise<ReturnTypeFrom<'listDeliveryStreams'>>;
    listTagsForDeliveryStream: (params: ParamsFrom<'listTagsForDeliveryStream', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForDeliveryStream'>>;
    putRecord: (params: ParamsFrom<'putRecord', Record<string, never>>) => Promise<ReturnTypeFrom<'putRecord'>>;
    putRecordBatch: (params: ParamsFrom<'putRecordBatch', Record<string, never>>) => Promise<ReturnTypeFrom<'putRecordBatch'>>;
    startDeliveryStreamEncryption: (params: ParamsFrom<'startDeliveryStreamEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'startDeliveryStreamEncryption'>>;
    stopDeliveryStreamEncryption: (params: ParamsFrom<'stopDeliveryStreamEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'stopDeliveryStreamEncryption'>>;
    tagDeliveryStream: (params: ParamsFrom<'tagDeliveryStream', Record<string, never>>) => Promise<ReturnTypeFrom<'tagDeliveryStream'>>;
    untagDeliveryStream: (params: ParamsFrom<'untagDeliveryStream', Record<string, never>>) => Promise<ReturnTypeFrom<'untagDeliveryStream'>>;
    updateDestination: (params: ParamsFrom<'updateDestination', Record<string, never>>) => Promise<ReturnTypeFrom<'updateDestination'>>;
    static fromClient(client: AWSFirehose): Firehose;
    static client(options?: AWSFirehose.Types.ClientConfiguration): Firehose;
}
export {};
