import { Request, AppMesh as AWSAppMesh } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSAppMesh> = AWSAppMesh[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSAppMesh, Extras> = AWSAppMesh[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class AppMesh {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "appmesh";
    readonly global: false;
    readonly category: "Networking and Content Delivery";
    readonly topLevelCalls: readonly ["listMeshes"];
    createGatewayRoute: (params: ParamsFrom<'createGatewayRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'createGatewayRoute'>>;
    createMesh: (params: ParamsFrom<'createMesh', Record<string, never>>) => Promise<ReturnTypeFrom<'createMesh'>>;
    createRoute: (params: ParamsFrom<'createRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'createRoute'>>;
    createVirtualGateway: (params: ParamsFrom<'createVirtualGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'createVirtualGateway'>>;
    createVirtualNode: (params: ParamsFrom<'createVirtualNode', Record<string, never>>) => Promise<ReturnTypeFrom<'createVirtualNode'>>;
    createVirtualRouter: (params: ParamsFrom<'createVirtualRouter', Record<string, never>>) => Promise<ReturnTypeFrom<'createVirtualRouter'>>;
    createVirtualService: (params: ParamsFrom<'createVirtualService', Record<string, never>>) => Promise<ReturnTypeFrom<'createVirtualService'>>;
    deleteGatewayRoute: (params: ParamsFrom<'deleteGatewayRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteGatewayRoute'>>;
    deleteMesh: (params: ParamsFrom<'deleteMesh', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteMesh'>>;
    deleteRoute: (params: ParamsFrom<'deleteRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRoute'>>;
    deleteVirtualGateway: (params: ParamsFrom<'deleteVirtualGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVirtualGateway'>>;
    deleteVirtualNode: (params: ParamsFrom<'deleteVirtualNode', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVirtualNode'>>;
    deleteVirtualRouter: (params: ParamsFrom<'deleteVirtualRouter', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVirtualRouter'>>;
    deleteVirtualService: (params: ParamsFrom<'deleteVirtualService', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteVirtualService'>>;
    describeGatewayRoute: (params: ParamsFrom<'describeGatewayRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'describeGatewayRoute'>>;
    describeMesh: (params: ParamsFrom<'describeMesh', Record<string, never>>) => Promise<ReturnTypeFrom<'describeMesh'>>;
    describeRoute: (params: ParamsFrom<'describeRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRoute'>>;
    describeVirtualGateway: (params: ParamsFrom<'describeVirtualGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'describeVirtualGateway'>>;
    describeVirtualNode: (params: ParamsFrom<'describeVirtualNode', Record<string, never>>) => Promise<ReturnTypeFrom<'describeVirtualNode'>>;
    describeVirtualRouter: (params: ParamsFrom<'describeVirtualRouter', Record<string, never>>) => Promise<ReturnTypeFrom<'describeVirtualRouter'>>;
    describeVirtualService: (params: ParamsFrom<'describeVirtualService', Record<string, never>>) => Promise<ReturnTypeFrom<'describeVirtualService'>>;
    listGatewayRoutes(params: {
        [K in keyof ParamsFrom<'listGatewayRoutes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listGatewayRoutes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listGatewayRoutes'>]-?: ReturnTypeFrom<'listGatewayRoutes'>[K];
        }['gatewayRoutes'];
    }>;
    listMeshes(params: {
        [K in keyof ParamsFrom<'listMeshes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listMeshes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listMeshes'>]-?: ReturnTypeFrom<'listMeshes'>[K];
        }['meshes'];
    }>;
    listRoutes(params: {
        [K in keyof ParamsFrom<'listRoutes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRoutes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRoutes'>]-?: ReturnTypeFrom<'listRoutes'>[K];
        }['routes'];
    }>;
    listTagsForResource(params: {
        [K in keyof ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTagsForResource'>]-?: ReturnTypeFrom<'listTagsForResource'>[K];
        }['tags'];
    }>;
    listVirtualGateways(params: {
        [K in keyof ParamsFrom<'listVirtualGateways', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listVirtualGateways', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listVirtualGateways'>]-?: ReturnTypeFrom<'listVirtualGateways'>[K];
        }['virtualGateways'];
    }>;
    listVirtualNodes(params: {
        [K in keyof ParamsFrom<'listVirtualNodes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listVirtualNodes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listVirtualNodes'>]-?: ReturnTypeFrom<'listVirtualNodes'>[K];
        }['virtualNodes'];
    }>;
    listVirtualRouters(params: {
        [K in keyof ParamsFrom<'listVirtualRouters', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listVirtualRouters', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listVirtualRouters'>]-?: ReturnTypeFrom<'listVirtualRouters'>[K];
        }['virtualRouters'];
    }>;
    listVirtualServices(params: {
        [K in keyof ParamsFrom<'listVirtualServices', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listVirtualServices', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listVirtualServices'>]-?: ReturnTypeFrom<'listVirtualServices'>[K];
        }['virtualServices'];
    }>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateGatewayRoute: (params: ParamsFrom<'updateGatewayRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'updateGatewayRoute'>>;
    updateMesh: (params: ParamsFrom<'updateMesh', Record<string, never>>) => Promise<ReturnTypeFrom<'updateMesh'>>;
    updateRoute: (params: ParamsFrom<'updateRoute', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRoute'>>;
    updateVirtualGateway: (params: ParamsFrom<'updateVirtualGateway', Record<string, never>>) => Promise<ReturnTypeFrom<'updateVirtualGateway'>>;
    updateVirtualNode: (params: ParamsFrom<'updateVirtualNode', Record<string, never>>) => Promise<ReturnTypeFrom<'updateVirtualNode'>>;
    updateVirtualRouter: (params: ParamsFrom<'updateVirtualRouter', Record<string, never>>) => Promise<ReturnTypeFrom<'updateVirtualRouter'>>;
    updateVirtualService: (params: ParamsFrom<'updateVirtualService', Record<string, never>>) => Promise<ReturnTypeFrom<'updateVirtualService'>>;
    static fromClient(client: AWSAppMesh): AppMesh;
    static client(options?: AWSAppMesh.Types.ClientConfiguration): AppMesh;
}
export {};
