import { Request, FMS as AWSFMS } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSFMS> = AWSFMS[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSFMS, Extras> = AWSFMS[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class FMS {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "fms";
    readonly global: false;
    readonly category: "Security, Identity & Compliance";
    readonly topLevelCalls: readonly ["listMemberAccounts", "listPolicies"];
    associateAdminAccount: (params: ParamsFrom<'associateAdminAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'associateAdminAccount'>>;
    associateThirdPartyFirewall: (params: ParamsFrom<'associateThirdPartyFirewall', Record<string, never>>) => Promise<ReturnTypeFrom<'associateThirdPartyFirewall'>>;
    deleteAppsList: (params: ParamsFrom<'deleteAppsList', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteAppsList'>>;
    deleteNotificationChannel: (params: ParamsFrom<'deleteNotificationChannel', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteNotificationChannel'>>;
    deletePolicy: (params: ParamsFrom<'deletePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deletePolicy'>>;
    deleteProtocolsList: (params: ParamsFrom<'deleteProtocolsList', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteProtocolsList'>>;
    disassociateAdminAccount: (params: ParamsFrom<'disassociateAdminAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateAdminAccount'>>;
    disassociateThirdPartyFirewall: (params: ParamsFrom<'disassociateThirdPartyFirewall', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateThirdPartyFirewall'>>;
    getAdminAccount: (params: ParamsFrom<'getAdminAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'getAdminAccount'>>;
    getAppsList: (params: ParamsFrom<'getAppsList', Record<string, never>>) => Promise<ReturnTypeFrom<'getAppsList'>>;
    getComplianceDetail: (params: ParamsFrom<'getComplianceDetail', Record<string, never>>) => Promise<ReturnTypeFrom<'getComplianceDetail'>>;
    getNotificationChannel: (params: ParamsFrom<'getNotificationChannel', Record<string, never>>) => Promise<ReturnTypeFrom<'getNotificationChannel'>>;
    getPolicy: (params: ParamsFrom<'getPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getPolicy'>>;
    getProtectionStatus: (params: ParamsFrom<'getProtectionStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getProtectionStatus'>>;
    getProtocolsList: (params: ParamsFrom<'getProtocolsList', Record<string, never>>) => Promise<ReturnTypeFrom<'getProtocolsList'>>;
    getThirdPartyFirewallAssociationStatus: (params: ParamsFrom<'getThirdPartyFirewallAssociationStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getThirdPartyFirewallAssociationStatus'>>;
    getViolationDetails: (params: ParamsFrom<'getViolationDetails', Record<string, never>>) => Promise<ReturnTypeFrom<'getViolationDetails'>>;
    listAppsLists(params: {
        [K in keyof ParamsFrom<'listAppsLists', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listAppsLists', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listAppsLists'>]-?: ReturnTypeFrom<'listAppsLists'>[K];
        }['AppsLists'];
    }>;
    listComplianceStatus(params: {
        [K in keyof ParamsFrom<'listComplianceStatus', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listComplianceStatus', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listComplianceStatus'>]-?: ReturnTypeFrom<'listComplianceStatus'>[K];
        }['PolicyComplianceStatusList'];
    }>;
    listMemberAccounts(params: {
        [K in keyof ParamsFrom<'listMemberAccounts', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listMemberAccounts', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listMemberAccounts'>]-?: ReturnTypeFrom<'listMemberAccounts'>[K];
        }['MemberAccounts'];
    }>;
    listPolicies(params: {
        [K in keyof ParamsFrom<'listPolicies', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listPolicies', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listPolicies'>]-?: ReturnTypeFrom<'listPolicies'>[K];
        }['PolicyList'];
    }>;
    listProtocolsLists(params: {
        [K in keyof ParamsFrom<'listProtocolsLists', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listProtocolsLists', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listProtocolsLists'>]-?: ReturnTypeFrom<'listProtocolsLists'>[K];
        }['ProtocolsLists'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    listThirdPartyFirewallFirewallPolicies(params: {
        [K in keyof ParamsFrom<'listThirdPartyFirewallFirewallPolicies', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listThirdPartyFirewallFirewallPolicies', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listThirdPartyFirewallFirewallPolicies'>]-?: ReturnTypeFrom<'listThirdPartyFirewallFirewallPolicies'>[K];
        }['ThirdPartyFirewallFirewallPolicies'];
    }>;
    putAppsList: (params: ParamsFrom<'putAppsList', Record<string, never>>) => Promise<ReturnTypeFrom<'putAppsList'>>;
    putNotificationChannel: (params: ParamsFrom<'putNotificationChannel', Record<string, never>>) => Promise<ReturnTypeFrom<'putNotificationChannel'>>;
    putPolicy: (params: ParamsFrom<'putPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putPolicy'>>;
    putProtocolsList: (params: ParamsFrom<'putProtocolsList', Record<string, never>>) => Promise<ReturnTypeFrom<'putProtocolsList'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    static fromClient(client: AWSFMS): FMS;
    static client(options?: AWSFMS.Types.ClientConfiguration): FMS;
}
export {};
