import { DialogSize } from '../public';
import { AppId } from '../public/appId';
/**
 * @beta
 * @hidden
 * @module
 * Namespace to open app store
 * @internal
 * Limited to Microsoft-internal use
 */
/**
 * @beta
 * @hidden
 * Interface for opening the full store function parameters
 * @internal
 * Limited to Microsoft-internal use
 */
export interface OpenFullStoreParams {
    /**
     * the store dialog size, defined by {@link DialogSize}, if not present, the host will choose an appropriate size
     */
    size?: DialogSize;
}
/**
 * @beta
 * @hidden
 * Interface for opening the in-context store function parameters
 * @internal
 * Limited to Microsoft-internal use
 */
export interface OpenInContextStoreParams {
    /**
     * the store dialog size, defined by {@link DialogSize}, if not present, the host will choose an appropriate size
     */
    size?: DialogSize;
    /**
     * The application capability (e.g., "Tab", "Bot", "Messaging", "Connector", "CUSTOMBOT").
     * Defaults to "Tab".
     */
    appCapability?: string;
    /**
     * The application meta capabilities (e.g., ["copilotPlugins", "copilotExtensions"]).
     * Defaults to "[]".
     */
    appMetaCapabilities?: string[];
    /**
     * The installation scope (e.g., "Personal" | "Team").
     * Defaults to "Personal".
     */
    installationScope?: string;
    /**
     * A list of app IDs to be filtered out.
     */
    filteredOutAppIds?: AppId[];
}
/**
 * @beta
 * @hidden
 * Interface of open app detail dialog function parameter, make sure app id is appended
 * @internal
 * Limited to Microsoft-internal use
 */
export interface OpenAppDetailParams {
    /**
     * app id of the dialog to open
     */
    appId: AppId;
    /**
     * the store dialog size, defined by {@link DialogSize}, if not present, the host will choose an appropriate size
     */
    size?: DialogSize;
}
/**
 * @beta
 * @hidden
 * Interface of open store specific to a collection function parameter, make sure collection id is appended
 * @internal
 * Limited to Microsoft-internal use
 */
export interface OpenSpecificStoreParams {
    /**
     * collection id of the plugin store to open
     */
    collectionId: string;
    /**
     * the store dialog size, defined by {@link DialogSize}, if not present, the host will choose an appropriate size
     */
    size?: DialogSize;
}
/**
 * @beta
 * @hidden
 * Api to open a full store without navigation
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function openFullStore(params: OpenFullStoreParams | undefined): Promise<void>;
/**
 * @beta
 * @hidden
 * Api to open an app detail dialog
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function openAppDetail(params: OpenAppDetailParams): Promise<void>;
/**
 * @beta
 * @hidden
 * Api to open an in-context-store dialog
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function openInContextStore(params: OpenInContextStoreParams | undefined): Promise<void>;
/**
 * @beta
 * @hidden
 * Api to open an store with navigation to a specific collection
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function openSpecificStore(params: OpenSpecificStoreParams): Promise<void>;
/**
 * Checks if the store capability is supported by the host
 * @returns boolean to represent whether the store capability is supported
 *
 * @throws Error if {@linkcode app.initialize} has not successfully completed
 */
export declare function isSupported(): boolean;
