import { EnvironmentModuleEntryPointType } from '../../../manifest/environment-modules';
/**
 * The condition to search to further narrowing done.
 */
export interface ExtensionSearchCondition {
    /**
     * The solution ID.
     */
    targetSolutionId: string;
    /**
     * The communication target names.
     */
    targetNames: string[];
    /**
     * The connections.
     */
    targetConnections: {
        /**
         * The identity of connection.
         */
        id: string;
        /**
         * The type of connection.
         */
        type: string;
        /**
         * The name of connection.
         */
        name: string;
    }[];
    /**
     * Validate with the requirements on manifest.
     */
    validationRequired: boolean;
}
/**
 * The extension search options.
 */
export interface ExtensionSearchOptions {
    /**
     * The id of the extension entry point to find an instance of.
     */
    entryPointId?: string;
    /**
     * The id of the extension instance to find. If provided, takes priority over entryPointId
     */
    instanceId?: string;
    /**
     * indicates if the extension should be instantiated if it was not found
     */
    createIfNotFound?: boolean;
    /**
     * The type of extension to search for. Currently only worker is supported.
     */
    extensionTypes?: EnvironmentModuleEntryPointType[];
    /**
     * The condition of extension to search.
     */
    condition?: ExtensionSearchCondition;
}
