import { Request, Macie as AWSMacie } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSMacie> = AWSMacie[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSMacie, Extras> = AWSMacie[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Macie {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "macie";
    readonly global: false;
    readonly category: "Machine Learning";
    readonly topLevelCalls: readonly ["listMemberAccounts", "listS3Resources"];
    associateMemberAccount: (params: ParamsFrom<'associateMemberAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'associateMemberAccount'>>;
    associateS3Resources: (params: ParamsFrom<'associateS3Resources', Record<string, never>>) => Promise<ReturnTypeFrom<'associateS3Resources'>>;
    disassociateMemberAccount: (params: ParamsFrom<'disassociateMemberAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateMemberAccount'>>;
    disassociateS3Resources: (params: ParamsFrom<'disassociateS3Resources', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateS3Resources'>>;
    listMemberAccounts: (params: ParamsFrom<'listMemberAccounts', Record<string, never>>) => Promise<ReturnTypeFrom<'listMemberAccounts'>>;
    listS3Resources: (params: ParamsFrom<'listS3Resources', Record<string, never>>) => Promise<ReturnTypeFrom<'listS3Resources'>>;
    updateS3Resources: (params: ParamsFrom<'updateS3Resources', Record<string, never>>) => Promise<ReturnTypeFrom<'updateS3Resources'>>;
    static fromClient(client: AWSMacie): Macie;
    static client(options?: AWSMacie.Types.ClientConfiguration): Macie;
}
export {};
