import { EnvironmentModuleEntryPoint, ExtenderDefinition, ExtensionMethodContract } from '../../../manifest/environment-modules';
/**
 * Defines the payload for extension broker responses
 */
export declare type ExtensionBrokerResponsePayload = ExtensionBrokerCreateResponsePayload | ExtensionBrokerCallResponsePayload | ExtensionBrokerEmitResponsePayload | ExtensionBrokerRunResponsePayload | ExtensionBrokerDestroyResponsePayload | ExtensionBrokerMoveResponsePayload | ExtensionBrokerFulfillTargetResponsePayload | ExtensionBrokerFindResponsePayload | ExtensionBrokerListenResponsePayload;
/**
 * Defines the payload for extension broker create responses
 */
export interface ExtensionBrokerCreateResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'create';
    /**
     * The id of the instance of the created extension
     */
    instanceId: string;
    /**
     * The extender definition of the created extension
     */
    extenderDefinition?: ExtenderDefinition;
    /**
     * The extender definition of the created extension
     */
    contract?: ExtensionMethodContract[];
}
/**
 * Defines the payload for extension broker call responses
 */
export interface ExtensionBrokerCallResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'call';
    /**
     * The return result of the method that was called
     */
    return: any;
}
/**
 * Defines the payload for extension broker call responses
 */
export interface ExtensionBrokerEmitResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'emit';
    /**
     * The id of the instance of the emit caller
     */
    instanceId: string;
    /**
     * The return result of the emit request
     */
    return: any;
}
/**
 * Defines the payload for extension broker create responses
 */
export interface ExtensionBrokerRunResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'run';
    /**
     * The return result of the method that was called
     */
    return?: any;
}
/**
 * Defines the payload for extension broker destroy responses
 */
export interface ExtensionBrokerDestroyResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'destroy';
}
/**
 * Defines the payload for extension broker move responses
 */
export interface ExtensionBrokerMoveResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'move';
}
export interface FulfillmentEntryPoints extends MsftSme.StringMap<ExtenderDefinition> {
}
export interface ExtensionBrokerFulfillTargetResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'fulfill';
    /**
     * A mapping ids of the extension entry points that match the parameters of the requested target.
     */
    fulfillment: FulfillmentEntryPoints;
}
/**
 * Defines the payload for extension broker find responses
 */
export interface ExtensionBrokerFindResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'find';
    /**
     * Indicates if an extension instance was found
     */
    found: boolean;
    /**
     * The id of the instance of the created extension
     */
    instanceId?: string;
    /**
     * The extender definition of the created extension
     */
    extenderDefinition?: ExtenderDefinition;
    /**
     * The extender definition of the created extension
     */
    contract?: ExtensionMethodContract[];
    /**
     * The entry points found matching query
     */
    entryPoints?: EnvironmentModuleEntryPoint[];
}
export interface ExtensionBrokerListenResponsePayload {
    /**
     * The type of extension broker response
     */
    responseType: 'listen';
}
