import { Request, GreengrassV2 as AWSGreengrassV2 } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSGreengrassV2> = AWSGreengrassV2[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSGreengrassV2, Extras> = AWSGreengrassV2[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class GreengrassV2 {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "greengrass";
    readonly global: false;
    readonly category: "Internet of Things";
    readonly topLevelCalls: readonly ["listComponents", "listCoreDevices", "listDeployments"];
    associateServiceRoleToAccount: (params: ParamsFrom<'associateServiceRoleToAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'associateServiceRoleToAccount'>>;
    batchAssociateClientDeviceWithCoreDevice: (params: ParamsFrom<'batchAssociateClientDeviceWithCoreDevice', Record<string, never>>) => Promise<ReturnTypeFrom<'batchAssociateClientDeviceWithCoreDevice'>>;
    batchDisassociateClientDeviceFromCoreDevice: (params: ParamsFrom<'batchDisassociateClientDeviceFromCoreDevice', Record<string, never>>) => Promise<ReturnTypeFrom<'batchDisassociateClientDeviceFromCoreDevice'>>;
    cancelDeployment: (params: ParamsFrom<'cancelDeployment', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelDeployment'>>;
    createComponentVersion: (params: ParamsFrom<'createComponentVersion', Record<string, never>>) => Promise<ReturnTypeFrom<'createComponentVersion'>>;
    createDeployment: (params: ParamsFrom<'createDeployment', Record<string, never>>) => Promise<ReturnTypeFrom<'createDeployment'>>;
    deleteComponent: (params: ParamsFrom<'deleteComponent', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteComponent'>>;
    deleteCoreDevice: (params: ParamsFrom<'deleteCoreDevice', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCoreDevice'>>;
    deleteDeployment: (params: ParamsFrom<'deleteDeployment', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDeployment'>>;
    describeComponent: (params: ParamsFrom<'describeComponent', Record<string, never>>) => Promise<ReturnTypeFrom<'describeComponent'>>;
    disassociateServiceRoleFromAccount: (params: ParamsFrom<'disassociateServiceRoleFromAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateServiceRoleFromAccount'>>;
    getComponent: (params: ParamsFrom<'getComponent', Record<string, never>>) => Promise<ReturnTypeFrom<'getComponent'>>;
    getComponentVersionArtifact: (params: ParamsFrom<'getComponentVersionArtifact', Record<string, never>>) => Promise<ReturnTypeFrom<'getComponentVersionArtifact'>>;
    getConnectivityInfo: (params: ParamsFrom<'getConnectivityInfo', Record<string, never>>) => Promise<ReturnTypeFrom<'getConnectivityInfo'>>;
    getCoreDevice: (params: ParamsFrom<'getCoreDevice', Record<string, never>>) => Promise<ReturnTypeFrom<'getCoreDevice'>>;
    getDeployment: (params: ParamsFrom<'getDeployment', Record<string, never>>) => Promise<ReturnTypeFrom<'getDeployment'>>;
    getServiceRoleForAccount: (params: ParamsFrom<'getServiceRoleForAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'getServiceRoleForAccount'>>;
    listClientDevicesAssociatedWithCoreDevice(params: {
        [K in keyof ParamsFrom<'listClientDevicesAssociatedWithCoreDevice', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listClientDevicesAssociatedWithCoreDevice', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listClientDevicesAssociatedWithCoreDevice'>]-?: ReturnTypeFrom<'listClientDevicesAssociatedWithCoreDevice'>[K];
        }['associatedClientDevices'];
    }>;
    listComponentVersions(params: {
        [K in keyof ParamsFrom<'listComponentVersions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listComponentVersions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listComponentVersions'>]-?: ReturnTypeFrom<'listComponentVersions'>[K];
        }['componentVersions'];
    }>;
    listComponents(params: {
        [K in keyof ParamsFrom<'listComponents', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listComponents', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listComponents'>]-?: ReturnTypeFrom<'listComponents'>[K];
        }['components'];
    }>;
    listCoreDevices(params: {
        [K in keyof ParamsFrom<'listCoreDevices', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listCoreDevices', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listCoreDevices'>]-?: ReturnTypeFrom<'listCoreDevices'>[K];
        }['coreDevices'];
    }>;
    listDeployments(params: {
        [K in keyof ParamsFrom<'listDeployments', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDeployments', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDeployments'>]-?: ReturnTypeFrom<'listDeployments'>[K];
        }['deployments'];
    }>;
    listEffectiveDeployments(params: {
        [K in keyof ParamsFrom<'listEffectiveDeployments', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listEffectiveDeployments', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listEffectiveDeployments'>]-?: ReturnTypeFrom<'listEffectiveDeployments'>[K];
        }['effectiveDeployments'];
    }>;
    listInstalledComponents(params: {
        [K in keyof ParamsFrom<'listInstalledComponents', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listInstalledComponents', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listInstalledComponents'>]-?: ReturnTypeFrom<'listInstalledComponents'>[K];
        }['installedComponents'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    resolveComponentCandidates: (params: ParamsFrom<'resolveComponentCandidates', Record<string, never>>) => Promise<ReturnTypeFrom<'resolveComponentCandidates'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateConnectivityInfo: (params: ParamsFrom<'updateConnectivityInfo', Record<string, never>>) => Promise<ReturnTypeFrom<'updateConnectivityInfo'>>;
    static fromClient(client: AWSGreengrassV2): GreengrassV2;
    static client(options?: AWSGreengrassV2.Types.ClientConfiguration): GreengrassV2;
}
export {};
