import { Request, CodeGuruProfiler as AWSCodeGuruProfiler } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCodeGuruProfiler> = AWSCodeGuruProfiler[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCodeGuruProfiler, Extras> = AWSCodeGuruProfiler[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CodeGuruProfiler {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "codeguru-profiler";
    readonly global: false;
    readonly category: "Developer Tools";
    readonly topLevelCalls: readonly ["getFindingsReportAccountSummary", "listProfilingGroups"];
    addNotificationChannels: (params: ParamsFrom<'addNotificationChannels', Record<string, never>>) => Promise<ReturnTypeFrom<'addNotificationChannels'>>;
    batchGetFrameMetricData: (params: ParamsFrom<'batchGetFrameMetricData', Record<string, never>>) => Promise<ReturnTypeFrom<'batchGetFrameMetricData'>>;
    configureAgent: (params: ParamsFrom<'configureAgent', Record<string, never>>) => Promise<ReturnTypeFrom<'configureAgent'>>;
    createProfilingGroup: (params: ParamsFrom<'createProfilingGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createProfilingGroup'>>;
    deleteProfilingGroup: (params: ParamsFrom<'deleteProfilingGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteProfilingGroup'>>;
    describeProfilingGroup: (params: ParamsFrom<'describeProfilingGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'describeProfilingGroup'>>;
    getFindingsReportAccountSummary: (params: ParamsFrom<'getFindingsReportAccountSummary', Record<string, never>>) => Promise<ReturnTypeFrom<'getFindingsReportAccountSummary'>>;
    getNotificationConfiguration: (params: ParamsFrom<'getNotificationConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getNotificationConfiguration'>>;
    getPolicy: (params: ParamsFrom<'getPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getPolicy'>>;
    getProfile: (params: ParamsFrom<'getProfile', Record<string, never>>) => Promise<ReturnTypeFrom<'getProfile'>>;
    getRecommendations: (params: ParamsFrom<'getRecommendations', Record<string, never>>) => Promise<ReturnTypeFrom<'getRecommendations'>>;
    listFindingsReports: (params: ParamsFrom<'listFindingsReports', Record<string, never>>) => Promise<ReturnTypeFrom<'listFindingsReports'>>;
    listProfileTimes(params: {
        [K in keyof ParamsFrom<'listProfileTimes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listProfileTimes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listProfileTimes'>]-?: ReturnTypeFrom<'listProfileTimes'>[K];
        }['profileTimes'];
    }>;
    listProfilingGroups: (params: ParamsFrom<'listProfilingGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'listProfilingGroups'>>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    postAgentProfile: (params: ParamsFrom<'postAgentProfile', Record<string, never>>) => Promise<ReturnTypeFrom<'postAgentProfile'>>;
    putPermission: (params: ParamsFrom<'putPermission', Record<string, never>>) => Promise<ReturnTypeFrom<'putPermission'>>;
    removeNotificationChannel: (params: ParamsFrom<'removeNotificationChannel', Record<string, never>>) => Promise<ReturnTypeFrom<'removeNotificationChannel'>>;
    removePermission: (params: ParamsFrom<'removePermission', Record<string, never>>) => Promise<ReturnTypeFrom<'removePermission'>>;
    submitFeedback: (params: ParamsFrom<'submitFeedback', Record<string, never>>) => Promise<ReturnTypeFrom<'submitFeedback'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateProfilingGroup: (params: ParamsFrom<'updateProfilingGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'updateProfilingGroup'>>;
    static fromClient(client: AWSCodeGuruProfiler): CodeGuruProfiler;
    static client(options?: AWSCodeGuruProfiler.Types.ClientConfiguration): CodeGuruProfiler;
}
export {};
