import { Request, IoTThingsGraph as AWSIoTThingsGraph } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSIoTThingsGraph> = AWSIoTThingsGraph[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSIoTThingsGraph, Extras> = AWSIoTThingsGraph[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class IoTThingsGraph {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "iotthingsgraph";
    readonly global: false;
    readonly category: "Internet of Things";
    readonly topLevelCalls: readonly ["searchFlowTemplates", "searchSystemInstances", "searchSystemTemplates"];
    associateEntityToThing: (params: ParamsFrom<'associateEntityToThing', Record<string, never>>) => Promise<ReturnTypeFrom<'associateEntityToThing'>>;
    createFlowTemplate: (params: ParamsFrom<'createFlowTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'createFlowTemplate'>>;
    createSystemInstance: (params: ParamsFrom<'createSystemInstance', Record<string, never>>) => Promise<ReturnTypeFrom<'createSystemInstance'>>;
    createSystemTemplate: (params: ParamsFrom<'createSystemTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'createSystemTemplate'>>;
    deleteFlowTemplate: (params: ParamsFrom<'deleteFlowTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFlowTemplate'>>;
    deleteNamespace: (params: ParamsFrom<'deleteNamespace', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteNamespace'>>;
    deleteSystemInstance: (params: ParamsFrom<'deleteSystemInstance', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSystemInstance'>>;
    deleteSystemTemplate: (params: ParamsFrom<'deleteSystemTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSystemTemplate'>>;
    deploySystemInstance: (params: ParamsFrom<'deploySystemInstance', Record<string, never>>) => Promise<ReturnTypeFrom<'deploySystemInstance'>>;
    deprecateFlowTemplate: (params: ParamsFrom<'deprecateFlowTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'deprecateFlowTemplate'>>;
    deprecateSystemTemplate: (params: ParamsFrom<'deprecateSystemTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'deprecateSystemTemplate'>>;
    describeNamespace: (params: ParamsFrom<'describeNamespace', Record<string, never>>) => Promise<ReturnTypeFrom<'describeNamespace'>>;
    dissociateEntityFromThing: (params: ParamsFrom<'dissociateEntityFromThing', Record<string, never>>) => Promise<ReturnTypeFrom<'dissociateEntityFromThing'>>;
    getEntities: (params: ParamsFrom<'getEntities', Record<string, never>>) => Promise<ReturnTypeFrom<'getEntities'>>;
    getFlowTemplate: (params: ParamsFrom<'getFlowTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'getFlowTemplate'>>;
    getFlowTemplateRevisions(params: {
        [K in keyof ParamsFrom<'getFlowTemplateRevisions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'getFlowTemplateRevisions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getFlowTemplateRevisions'>]-?: ReturnTypeFrom<'getFlowTemplateRevisions'>[K];
        }['summaries'];
    }>;
    getNamespaceDeletionStatus: (params: ParamsFrom<'getNamespaceDeletionStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getNamespaceDeletionStatus'>>;
    getSystemInstance: (params: ParamsFrom<'getSystemInstance', Record<string, never>>) => Promise<ReturnTypeFrom<'getSystemInstance'>>;
    getSystemTemplate: (params: ParamsFrom<'getSystemTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'getSystemTemplate'>>;
    getSystemTemplateRevisions(params: {
        [K in keyof ParamsFrom<'getSystemTemplateRevisions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'getSystemTemplateRevisions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getSystemTemplateRevisions'>]-?: ReturnTypeFrom<'getSystemTemplateRevisions'>[K];
        }['summaries'];
    }>;
    getUploadStatus: (params: ParamsFrom<'getUploadStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getUploadStatus'>>;
    listFlowExecutionMessages(params: {
        [K in keyof ParamsFrom<'listFlowExecutionMessages', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listFlowExecutionMessages', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listFlowExecutionMessages'>]-?: ReturnTypeFrom<'listFlowExecutionMessages'>[K];
        }['messages'];
    }>;
    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'];
    }>;
    searchEntities(params: {
        [K in keyof ParamsFrom<'searchEntities', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'searchEntities', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'searchEntities'>]-?: ReturnTypeFrom<'searchEntities'>[K];
        }['descriptions'];
    }>;
    searchFlowExecutions(params: {
        [K in keyof ParamsFrom<'searchFlowExecutions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'searchFlowExecutions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'searchFlowExecutions'>]-?: ReturnTypeFrom<'searchFlowExecutions'>[K];
        }['summaries'];
    }>;
    searchFlowTemplates(params: {
        [K in keyof ParamsFrom<'searchFlowTemplates', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'searchFlowTemplates', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'searchFlowTemplates'>]-?: ReturnTypeFrom<'searchFlowTemplates'>[K];
        }['summaries'];
    }>;
    searchSystemInstances(params: {
        [K in keyof ParamsFrom<'searchSystemInstances', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'searchSystemInstances', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'searchSystemInstances'>]-?: ReturnTypeFrom<'searchSystemInstances'>[K];
        }['summaries'];
    }>;
    searchSystemTemplates(params: {
        [K in keyof ParamsFrom<'searchSystemTemplates', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'searchSystemTemplates', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'searchSystemTemplates'>]-?: ReturnTypeFrom<'searchSystemTemplates'>[K];
        }['summaries'];
    }>;
    searchThings(params: {
        [K in keyof ParamsFrom<'searchThings', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'searchThings', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'searchThings'>]-?: ReturnTypeFrom<'searchThings'>[K];
        }['things'];
    }>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    undeploySystemInstance: (params: ParamsFrom<'undeploySystemInstance', Record<string, never>>) => Promise<ReturnTypeFrom<'undeploySystemInstance'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateFlowTemplate: (params: ParamsFrom<'updateFlowTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFlowTemplate'>>;
    updateSystemTemplate: (params: ParamsFrom<'updateSystemTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSystemTemplate'>>;
    uploadEntityDefinitions: (params: ParamsFrom<'uploadEntityDefinitions', Record<string, never>>) => Promise<ReturnTypeFrom<'uploadEntityDefinitions'>>;
    static fromClient(client: AWSIoTThingsGraph): IoTThingsGraph;
    static client(options?: AWSIoTThingsGraph.Types.ClientConfiguration): IoTThingsGraph;
}
export {};
