import { Request, CloudTrail as AWSCloudTrail } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCloudTrail> = AWSCloudTrail[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCloudTrail, Extras> = AWSCloudTrail[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CloudTrail {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "cloudtrail";
    readonly global: false;
    readonly category: "Management and Governance";
    readonly topLevelCalls: readonly ["describeTrails", "listChannels", "listEventDataStores", "listImports", "listPublicKeys", "listTrails", "lookupEvents"];
    addTags: (params: ParamsFrom<'addTags', Record<string, never>>) => Promise<ReturnTypeFrom<'addTags'>>;
    cancelQuery: (params: ParamsFrom<'cancelQuery', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelQuery'>>;
    createEventDataStore: (params: ParamsFrom<'createEventDataStore', Record<string, never>>) => Promise<ReturnTypeFrom<'createEventDataStore'>>;
    createTrail: (params: ParamsFrom<'createTrail', Record<string, never>>) => Promise<ReturnTypeFrom<'createTrail'>>;
    deleteEventDataStore: (params: ParamsFrom<'deleteEventDataStore', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteEventDataStore'>>;
    deleteTrail: (params: ParamsFrom<'deleteTrail', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTrail'>>;
    describeQuery: (params: ParamsFrom<'describeQuery', Record<string, never>>) => Promise<ReturnTypeFrom<'describeQuery'>>;
    describeTrails: (params: ParamsFrom<'describeTrails', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTrails'>>;
    getChannel: (params: ParamsFrom<'getChannel', Record<string, never>>) => Promise<ReturnTypeFrom<'getChannel'>>;
    getEventDataStore: (params: ParamsFrom<'getEventDataStore', Record<string, never>>) => Promise<ReturnTypeFrom<'getEventDataStore'>>;
    getEventSelectors: (params: ParamsFrom<'getEventSelectors', Record<string, never>>) => Promise<ReturnTypeFrom<'getEventSelectors'>>;
    getImport: (params: ParamsFrom<'getImport', Record<string, never>>) => Promise<ReturnTypeFrom<'getImport'>>;
    getInsightSelectors: (params: ParamsFrom<'getInsightSelectors', Record<string, never>>) => Promise<ReturnTypeFrom<'getInsightSelectors'>>;
    getQueryResults: (params: ParamsFrom<'getQueryResults', Record<string, never>>) => Promise<ReturnTypeFrom<'getQueryResults'>>;
    getTrail: (params: ParamsFrom<'getTrail', Record<string, never>>) => Promise<ReturnTypeFrom<'getTrail'>>;
    getTrailStatus: (params: ParamsFrom<'getTrailStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getTrailStatus'>>;
    listChannels: (params: ParamsFrom<'listChannels', Record<string, never>>) => Promise<ReturnTypeFrom<'listChannels'>>;
    listEventDataStores: (params: ParamsFrom<'listEventDataStores', Record<string, never>>) => Promise<ReturnTypeFrom<'listEventDataStores'>>;
    listImportFailures(params: {
        [K in keyof ParamsFrom<'listImportFailures', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listImportFailures', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listImportFailures'>]-?: ReturnTypeFrom<'listImportFailures'>[K];
        }['Failures'];
    }>;
    listImports(params: {
        [K in keyof ParamsFrom<'listImports', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listImports', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listImports'>]-?: ReturnTypeFrom<'listImports'>[K];
        }['Imports'];
    }>;
    listPublicKeys(params: {
        [K in keyof ParamsFrom<'listPublicKeys', {
            next?: string;
        }>]: ParamsFrom<'listPublicKeys', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listPublicKeys'>]-?: ReturnTypeFrom<'listPublicKeys'>[K];
        }['PublicKeyList'];
    }>;
    listQueries: (params: ParamsFrom<'listQueries', Record<string, never>>) => Promise<ReturnTypeFrom<'listQueries'>>;
    listTags(params: {
        [K in keyof ParamsFrom<'listTags', {
            next?: string;
        }>]: ParamsFrom<'listTags', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTags'>]-?: ReturnTypeFrom<'listTags'>[K];
        }['ResourceTagList'];
    }>;
    listTrails(params: {
        [K in keyof ParamsFrom<'listTrails', {
            next?: string;
        }>]: ParamsFrom<'listTrails', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTrails'>]-?: ReturnTypeFrom<'listTrails'>[K];
        }['Trails'];
    }>;
    lookupEvents(params: {
        [K in keyof ParamsFrom<'lookupEvents', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'lookupEvents', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'lookupEvents'>]-?: ReturnTypeFrom<'lookupEvents'>[K];
        }['Events'];
    }>;
    putEventSelectors: (params: ParamsFrom<'putEventSelectors', Record<string, never>>) => Promise<ReturnTypeFrom<'putEventSelectors'>>;
    putInsightSelectors: (params: ParamsFrom<'putInsightSelectors', Record<string, never>>) => Promise<ReturnTypeFrom<'putInsightSelectors'>>;
    removeTags: (params: ParamsFrom<'removeTags', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTags'>>;
    restoreEventDataStore: (params: ParamsFrom<'restoreEventDataStore', Record<string, never>>) => Promise<ReturnTypeFrom<'restoreEventDataStore'>>;
    startImport: (params: ParamsFrom<'startImport', Record<string, never>>) => Promise<ReturnTypeFrom<'startImport'>>;
    startLogging: (params: ParamsFrom<'startLogging', Record<string, never>>) => Promise<ReturnTypeFrom<'startLogging'>>;
    startQuery: (params: ParamsFrom<'startQuery', Record<string, never>>) => Promise<ReturnTypeFrom<'startQuery'>>;
    stopImport: (params: ParamsFrom<'stopImport', Record<string, never>>) => Promise<ReturnTypeFrom<'stopImport'>>;
    stopLogging: (params: ParamsFrom<'stopLogging', Record<string, never>>) => Promise<ReturnTypeFrom<'stopLogging'>>;
    updateEventDataStore: (params: ParamsFrom<'updateEventDataStore', Record<string, never>>) => Promise<ReturnTypeFrom<'updateEventDataStore'>>;
    updateTrail: (params: ParamsFrom<'updateTrail', Record<string, never>>) => Promise<ReturnTypeFrom<'updateTrail'>>;
    static fromClient(client: AWSCloudTrail): CloudTrail;
    static client(options?: AWSCloudTrail.Types.ClientConfiguration): CloudTrail;
}
export {};
