///
import type { SandboxOptions } from '../types/Sandbox.ts';
declare function useSandboxInternal(): {
bootstrap: () => Promise;
/**
* A computed ref that gives access to the web container instance.
*/
container: import("vue").ComputedRef;
/**
* Editor tabs manager. Responsible for opening, focusing and closing editor tabs.
*/
editorTabs: {
open: (id: string, label?: string | undefined, context?: import("../typedoc-entry.ts").EditorTabContext | undefined) => void;
close: (id: string) => void;
current: import("vue").ComputedRef | undefined>;
findTab: (id: string) => import("../typedoc-entry.ts").Tab | undefined;
findTabIndex: (id: string) => number;
tabs: import("vue").ComputedRef[]>;
updateContext: (id: string, setter: (ctx: import("../typedoc-entry.ts").EditorTabContext) => import("../typedoc-entry.ts").EditorTabContext) => void;
};
/**
* Provides matchers for different purposes.
* The matchers use [ignore](https://www.npmjs.com/package/ignore) to determine whether a give path matches one
* of the patterns specified in the sandbox options.
*/
explorer: {
hidden: import("vue").ComputedRef;
readonly: import("vue").ComputedRef;
reinstall: import("vue").ComputedRef;
};
options: {
readonly editor: {
readonly suppressClose?: boolean | undefined;
readonly theme?: {
readonly dark?: (() => import("@codemirror/state").Extension[]) | undefined;
readonly light?: (() => import("@codemirror/state").Extension[]) | undefined;
} | undefined;
};
readonly explorer: {
readonly hidden?: readonly string[] | undefined;
readonly readonly?: readonly string[] | undefined;
readonly reinstall?: readonly string[] | undefined;
};
readonly preview: {
readonly suppressAddressBar?: boolean | undefined;
};
readonly process: {
readonly commands: {
readonly install: string;
readonly devServer: string;
readonly terminal: string;
};
readonly packageManager: "npm" | "pnpm" | "yarn";
readonly starters?: {
readonly install?: (() => Promise) | undefined;
readonly devServer?: (() => Promise) | undefined;
readonly terminal?: (() => Promise) | undefined;
} | undefined;
};
readonly terminal: {
readonly maxCount?: number | undefined;
readonly theme?: {
readonly dark?: (() => import("@xterm/xterm").ITheme) | undefined;
readonly light?: (() => import("@xterm/xterm").ITheme) | undefined;
} | undefined;
};
};
preview: {
/**
* A reference to the preview iframe element.
*/
frame: import("vue").Ref;
/**
* Reload the preview.
*/
reload: () => Promise;
/**
* Computed ref containing a boolean flag. When true, the address bar in the preview panel will not be shown.
*/
suppressAddressBar: import("vue").ComputedRef;
/**
* The preview URL.
*/
url: import("vue").ComputedRef;
};
/**
* Process tabs manager. Responsible for opening, focusing and closing process and terminal tabs.
*/
processTabs: {
availableTerminals: import("vue").ComputedRef;
close: (id: string) => void;
kill: (id: string) => void;
open: (id: string, label?: string | undefined, context?: import("../typedoc-entry.ts").ProcessTabContext | undefined) => Promise;
restart: (id: string) => Promise;
current: import("vue").ComputedRef | undefined>;
findTab: (id: string) => import("../typedoc-entry.ts").Tab | undefined;
findTabIndex: (id: string) => number;
tabs: import("vue").ComputedRef[]>;
updateContext: (id: string, setter: (ctx: import("../typedoc-entry.ts").ProcessTabContext) => import("../typedoc-entry.ts").ProcessTabContext) => void;
};
setOption: (key: K, newValueOrSetter: T | ((oldValue: T) => T)) => void;
setPackageManager: (pm: SandboxOptions['process']['packageManager']) => void;
};
/**
* The main composable of Karagöz Sandbox.
*
* Injects and uses the provided web container promise, performs bootstrapping and returns an object that
* is the central piece in the logic of the sandbox.
*
* This composable is created as a shared instance (singleton, if you will) using VueUse's `createSharedComposable()`.
*/
export declare const useSandbox: typeof useSandboxInternal;
export {};