import { Request, CloudWatchLogs as AWSCloudWatchLogs } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCloudWatchLogs> = AWSCloudWatchLogs[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCloudWatchLogs, Extras> = AWSCloudWatchLogs[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CloudWatchLogs {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "logs";
    readonly global: false;
    readonly category: "Management and Governance";
    readonly topLevelCalls: readonly ["describeDestinations", "describeLogGroups", "describeMetricFilters"];
    associateKmsKey: (params: ParamsFrom<'associateKmsKey', Record<string, never>>) => Promise<ReturnTypeFrom<'associateKmsKey'>>;
    cancelExportTask: (params: ParamsFrom<'cancelExportTask', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelExportTask'>>;
    createExportTask: (params: ParamsFrom<'createExportTask', Record<string, never>>) => Promise<ReturnTypeFrom<'createExportTask'>>;
    createLogGroup: (params: ParamsFrom<'createLogGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createLogGroup'>>;
    createLogStream: (params: ParamsFrom<'createLogStream', Record<string, never>>) => Promise<ReturnTypeFrom<'createLogStream'>>;
    deleteDestination: (params: ParamsFrom<'deleteDestination', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDestination'>>;
    deleteLogGroup: (params: ParamsFrom<'deleteLogGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLogGroup'>>;
    deleteLogStream: (params: ParamsFrom<'deleteLogStream', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLogStream'>>;
    deleteMetricFilter: (params: ParamsFrom<'deleteMetricFilter', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteMetricFilter'>>;
    deleteQueryDefinition: (params: ParamsFrom<'deleteQueryDefinition', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteQueryDefinition'>>;
    deleteResourcePolicy: (params: ParamsFrom<'deleteResourcePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteResourcePolicy'>>;
    deleteRetentionPolicy: (params: ParamsFrom<'deleteRetentionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRetentionPolicy'>>;
    deleteSubscriptionFilter: (params: ParamsFrom<'deleteSubscriptionFilter', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSubscriptionFilter'>>;
    describeDestinations(params: {
        [K in keyof ParamsFrom<'describeDestinations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeDestinations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeDestinations'>]-?: ReturnTypeFrom<'describeDestinations'>[K];
        }['destinations'];
    }>;
    describeExportTasks: (params: ParamsFrom<'describeExportTasks', Record<string, never>>) => Promise<ReturnTypeFrom<'describeExportTasks'>>;
    describeLogGroups(params: {
        [K in keyof ParamsFrom<'describeLogGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeLogGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeLogGroups'>]-?: ReturnTypeFrom<'describeLogGroups'>[K];
        }['logGroups'];
    }>;
    describeLogStreams(params: {
        [K in keyof ParamsFrom<'describeLogStreams', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeLogStreams', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeLogStreams'>]-?: ReturnTypeFrom<'describeLogStreams'>[K];
        }['logStreams'];
    }>;
    describeMetricFilters(params: {
        [K in keyof ParamsFrom<'describeMetricFilters', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeMetricFilters', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeMetricFilters'>]-?: ReturnTypeFrom<'describeMetricFilters'>[K];
        }['metricFilters'];
    }>;
    describeQueries: (params: ParamsFrom<'describeQueries', Record<string, never>>) => Promise<ReturnTypeFrom<'describeQueries'>>;
    describeQueryDefinitions: (params: ParamsFrom<'describeQueryDefinitions', Record<string, never>>) => Promise<ReturnTypeFrom<'describeQueryDefinitions'>>;
    describeResourcePolicies: (params: ParamsFrom<'describeResourcePolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'describeResourcePolicies'>>;
    describeSubscriptionFilters(params: {
        [K in keyof ParamsFrom<'describeSubscriptionFilters', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeSubscriptionFilters', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeSubscriptionFilters'>]-?: ReturnTypeFrom<'describeSubscriptionFilters'>[K];
        }['subscriptionFilters'];
    }>;
    disassociateKmsKey: (params: ParamsFrom<'disassociateKmsKey', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateKmsKey'>>;
    filterLogEvents: (params: ParamsFrom<'filterLogEvents', Record<string, never>>) => Promise<ReturnTypeFrom<'filterLogEvents'>>;
    getLogEvents(params: {
        [K in keyof ParamsFrom<'getLogEvents', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'getLogEvents', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getLogEvents'>]-?: ReturnTypeFrom<'getLogEvents'>[K];
        }['events'];
    }>;
    getLogGroupFields: (params: ParamsFrom<'getLogGroupFields', Record<string, never>>) => Promise<ReturnTypeFrom<'getLogGroupFields'>>;
    getLogRecord: (params: ParamsFrom<'getLogRecord', Record<string, never>>) => Promise<ReturnTypeFrom<'getLogRecord'>>;
    getQueryResults: (params: ParamsFrom<'getQueryResults', Record<string, never>>) => Promise<ReturnTypeFrom<'getQueryResults'>>;
    listTagsLogGroup: (params: ParamsFrom<'listTagsLogGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsLogGroup'>>;
    putDestination: (params: ParamsFrom<'putDestination', Record<string, never>>) => Promise<ReturnTypeFrom<'putDestination'>>;
    putDestinationPolicy: (params: ParamsFrom<'putDestinationPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putDestinationPolicy'>>;
    putLogEvents: (params: ParamsFrom<'putLogEvents', Record<string, never>>) => Promise<ReturnTypeFrom<'putLogEvents'>>;
    putMetricFilter: (params: ParamsFrom<'putMetricFilter', Record<string, never>>) => Promise<ReturnTypeFrom<'putMetricFilter'>>;
    putQueryDefinition: (params: ParamsFrom<'putQueryDefinition', Record<string, never>>) => Promise<ReturnTypeFrom<'putQueryDefinition'>>;
    putResourcePolicy: (params: ParamsFrom<'putResourcePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putResourcePolicy'>>;
    putRetentionPolicy: (params: ParamsFrom<'putRetentionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putRetentionPolicy'>>;
    putSubscriptionFilter: (params: ParamsFrom<'putSubscriptionFilter', Record<string, never>>) => Promise<ReturnTypeFrom<'putSubscriptionFilter'>>;
    startQuery: (params: ParamsFrom<'startQuery', Record<string, never>>) => Promise<ReturnTypeFrom<'startQuery'>>;
    stopQuery: (params: ParamsFrom<'stopQuery', Record<string, never>>) => Promise<ReturnTypeFrom<'stopQuery'>>;
    tagLogGroup: (params: ParamsFrom<'tagLogGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'tagLogGroup'>>;
    testMetricFilter: (params: ParamsFrom<'testMetricFilter', Record<string, never>>) => Promise<ReturnTypeFrom<'testMetricFilter'>>;
    untagLogGroup: (params: ParamsFrom<'untagLogGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'untagLogGroup'>>;
    static fromClient(client: AWSCloudWatchLogs): CloudWatchLogs;
    static client(options?: AWSCloudWatchLogs.Types.ClientConfiguration): CloudWatchLogs;
}
export {};
