import { Request, WorkMail as AWSWorkMail } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSWorkMail> = AWSWorkMail[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSWorkMail, Extras> = AWSWorkMail[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class WorkMail {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "workmail";
    readonly global: false;
    readonly category: "Other";
    readonly topLevelCalls: readonly ["listOrganizations"];
    associateDelegateToResource: (params: ParamsFrom<'associateDelegateToResource', Record<string, never>>) => Promise<ReturnTypeFrom<'associateDelegateToResource'>>;
    associateMemberToGroup: (params: ParamsFrom<'associateMemberToGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'associateMemberToGroup'>>;
    cancelMailboxExportJob: (params: ParamsFrom<'cancelMailboxExportJob', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelMailboxExportJob'>>;
    createAlias: (params: ParamsFrom<'createAlias', Record<string, never>>) => Promise<ReturnTypeFrom<'createAlias'>>;
    createAvailabilityConfiguration: (params: ParamsFrom<'createAvailabilityConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'createAvailabilityConfiguration'>>;
    createGroup: (params: ParamsFrom<'createGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createGroup'>>;
    createMobileDeviceAccessRule: (params: ParamsFrom<'createMobileDeviceAccessRule', Record<string, never>>) => Promise<ReturnTypeFrom<'createMobileDeviceAccessRule'>>;
    createOrganization: (params: ParamsFrom<'createOrganization', Record<string, never>>) => Promise<ReturnTypeFrom<'createOrganization'>>;
    createResource: (params: ParamsFrom<'createResource', Record<string, never>>) => Promise<ReturnTypeFrom<'createResource'>>;
    createUser: (params: ParamsFrom<'createUser', Record<string, never>>) => Promise<ReturnTypeFrom<'createUser'>>;
    deleteAccessControlRule: (params: ParamsFrom<'deleteAccessControlRule', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAccessControlRule'>>;
    deleteAlias: (params: ParamsFrom<'deleteAlias', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAlias'>>;
    deleteAvailabilityConfiguration: (params: ParamsFrom<'deleteAvailabilityConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAvailabilityConfiguration'>>;
    deleteEmailMonitoringConfiguration: (params: ParamsFrom<'deleteEmailMonitoringConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteEmailMonitoringConfiguration'>>;
    deleteGroup: (params: ParamsFrom<'deleteGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteGroup'>>;
    deleteMailboxPermissions: (params: ParamsFrom<'deleteMailboxPermissions', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteMailboxPermissions'>>;
    deleteMobileDeviceAccessOverride: (params: ParamsFrom<'deleteMobileDeviceAccessOverride', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteMobileDeviceAccessOverride'>>;
    deleteMobileDeviceAccessRule: (params: ParamsFrom<'deleteMobileDeviceAccessRule', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteMobileDeviceAccessRule'>>;
    deleteOrganization: (params: ParamsFrom<'deleteOrganization', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteOrganization'>>;
    deleteResource: (params: ParamsFrom<'deleteResource', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteResource'>>;
    deleteRetentionPolicy: (params: ParamsFrom<'deleteRetentionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRetentionPolicy'>>;
    deleteUser: (params: ParamsFrom<'deleteUser', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteUser'>>;
    deregisterFromWorkMail: (params: ParamsFrom<'deregisterFromWorkMail', Record<string, never>>) => Promise<ReturnTypeFrom<'deregisterFromWorkMail'>>;
    deregisterMailDomain: (params: ParamsFrom<'deregisterMailDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'deregisterMailDomain'>>;
    describeEmailMonitoringConfiguration: (params: ParamsFrom<'describeEmailMonitoringConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'describeEmailMonitoringConfiguration'>>;
    describeGroup: (params: ParamsFrom<'describeGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'describeGroup'>>;
    describeInboundDmarcSettings: (params: ParamsFrom<'describeInboundDmarcSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'describeInboundDmarcSettings'>>;
    describeMailboxExportJob: (params: ParamsFrom<'describeMailboxExportJob', Record<string, never>>) => Promise<ReturnTypeFrom<'describeMailboxExportJob'>>;
    describeOrganization: (params: ParamsFrom<'describeOrganization', Record<string, never>>) => Promise<ReturnTypeFrom<'describeOrganization'>>;
    describeResource: (params: ParamsFrom<'describeResource', Record<string, never>>) => Promise<ReturnTypeFrom<'describeResource'>>;
    describeUser: (params: ParamsFrom<'describeUser', Record<string, never>>) => Promise<ReturnTypeFrom<'describeUser'>>;
    disassociateDelegateFromResource: (params: ParamsFrom<'disassociateDelegateFromResource', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateDelegateFromResource'>>;
    disassociateMemberFromGroup: (params: ParamsFrom<'disassociateMemberFromGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateMemberFromGroup'>>;
    getAccessControlEffect: (params: ParamsFrom<'getAccessControlEffect', Record<string, never>>) => Promise<ReturnTypeFrom<'getAccessControlEffect'>>;
    getDefaultRetentionPolicy: (params: ParamsFrom<'getDefaultRetentionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getDefaultRetentionPolicy'>>;
    getMailDomain: (params: ParamsFrom<'getMailDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'getMailDomain'>>;
    getMailboxDetails: (params: ParamsFrom<'getMailboxDetails', Record<string, never>>) => Promise<ReturnTypeFrom<'getMailboxDetails'>>;
    getMobileDeviceAccessEffect: (params: ParamsFrom<'getMobileDeviceAccessEffect', Record<string, never>>) => Promise<ReturnTypeFrom<'getMobileDeviceAccessEffect'>>;
    getMobileDeviceAccessOverride: (params: ParamsFrom<'getMobileDeviceAccessOverride', Record<string, never>>) => Promise<ReturnTypeFrom<'getMobileDeviceAccessOverride'>>;
    listAccessControlRules: (params: ParamsFrom<'listAccessControlRules', Record<string, never>>) => Promise<ReturnTypeFrom<'listAccessControlRules'>>;
    listAliases: (params: ParamsFrom<'listAliases', Record<string, never>>) => Promise<ReturnTypeFrom<'listAliases'>>;
    listAvailabilityConfigurations(params: {
        [K in keyof ParamsFrom<'listAvailabilityConfigurations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listAvailabilityConfigurations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listAvailabilityConfigurations'>]-?: ReturnTypeFrom<'listAvailabilityConfigurations'>[K];
        }['AvailabilityConfigurations'];
    }>;
    listGroupMembers: (params: ParamsFrom<'listGroupMembers', Record<string, never>>) => Promise<ReturnTypeFrom<'listGroupMembers'>>;
    listGroups: (params: ParamsFrom<'listGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'listGroups'>>;
    listMailDomains: (params: ParamsFrom<'listMailDomains', Record<string, never>>) => Promise<ReturnTypeFrom<'listMailDomains'>>;
    listMailboxExportJobs: (params: ParamsFrom<'listMailboxExportJobs', Record<string, never>>) => Promise<ReturnTypeFrom<'listMailboxExportJobs'>>;
    listMailboxPermissions: (params: ParamsFrom<'listMailboxPermissions', Record<string, never>>) => Promise<ReturnTypeFrom<'listMailboxPermissions'>>;
    listMobileDeviceAccessOverrides: (params: ParamsFrom<'listMobileDeviceAccessOverrides', Record<string, never>>) => Promise<ReturnTypeFrom<'listMobileDeviceAccessOverrides'>>;
    listMobileDeviceAccessRules: (params: ParamsFrom<'listMobileDeviceAccessRules', Record<string, never>>) => Promise<ReturnTypeFrom<'listMobileDeviceAccessRules'>>;
    listOrganizations: (params: ParamsFrom<'listOrganizations', Record<string, never>>) => Promise<ReturnTypeFrom<'listOrganizations'>>;
    listResourceDelegates: (params: ParamsFrom<'listResourceDelegates', Record<string, never>>) => Promise<ReturnTypeFrom<'listResourceDelegates'>>;
    listResources: (params: ParamsFrom<'listResources', Record<string, never>>) => Promise<ReturnTypeFrom<'listResources'>>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    listUsers: (params: ParamsFrom<'listUsers', Record<string, never>>) => Promise<ReturnTypeFrom<'listUsers'>>;
    putAccessControlRule: (params: ParamsFrom<'putAccessControlRule', Record<string, never>>) => Promise<ReturnTypeFrom<'putAccessControlRule'>>;
    putEmailMonitoringConfiguration: (params: ParamsFrom<'putEmailMonitoringConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putEmailMonitoringConfiguration'>>;
    putInboundDmarcSettings: (params: ParamsFrom<'putInboundDmarcSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'putInboundDmarcSettings'>>;
    putMailboxPermissions: (params: ParamsFrom<'putMailboxPermissions', Record<string, never>>) => Promise<ReturnTypeFrom<'putMailboxPermissions'>>;
    putMobileDeviceAccessOverride: (params: ParamsFrom<'putMobileDeviceAccessOverride', Record<string, never>>) => Promise<ReturnTypeFrom<'putMobileDeviceAccessOverride'>>;
    putRetentionPolicy: (params: ParamsFrom<'putRetentionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putRetentionPolicy'>>;
    registerMailDomain: (params: ParamsFrom<'registerMailDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'registerMailDomain'>>;
    registerToWorkMail: (params: ParamsFrom<'registerToWorkMail', Record<string, never>>) => Promise<ReturnTypeFrom<'registerToWorkMail'>>;
    resetPassword: (params: ParamsFrom<'resetPassword', Record<string, never>>) => Promise<ReturnTypeFrom<'resetPassword'>>;
    startMailboxExportJob: (params: ParamsFrom<'startMailboxExportJob', Record<string, never>>) => Promise<ReturnTypeFrom<'startMailboxExportJob'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    testAvailabilityConfiguration: (params: ParamsFrom<'testAvailabilityConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'testAvailabilityConfiguration'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateAvailabilityConfiguration: (params: ParamsFrom<'updateAvailabilityConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'updateAvailabilityConfiguration'>>;
    updateDefaultMailDomain: (params: ParamsFrom<'updateDefaultMailDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'updateDefaultMailDomain'>>;
    updateMailboxQuota: (params: ParamsFrom<'updateMailboxQuota', Record<string, never>>) => Promise<ReturnTypeFrom<'updateMailboxQuota'>>;
    updateMobileDeviceAccessRule: (params: ParamsFrom<'updateMobileDeviceAccessRule', Record<string, never>>) => Promise<ReturnTypeFrom<'updateMobileDeviceAccessRule'>>;
    updatePrimaryEmailAddress: (params: ParamsFrom<'updatePrimaryEmailAddress', Record<string, never>>) => Promise<ReturnTypeFrom<'updatePrimaryEmailAddress'>>;
    updateResource: (params: ParamsFrom<'updateResource', Record<string, never>>) => Promise<ReturnTypeFrom<'updateResource'>>;
    static fromClient(client: AWSWorkMail): WorkMail;
    static client(options?: AWSWorkMail.Types.ClientConfiguration): WorkMail;
}
export {};
