export declare function mount(container: HTMLElement, options?: MountOptions): MountHandle;
export declare interface MountHandle {
/** Unmounts the React tree. `container` itself is left in the DOM (with an empty shadow root). */
unmount(): void;
setTheme(theme: Theme): void;
}
export declare interface MountOptions {
/** pi-outpost backend origin, e.g. "https://api.example.com". Defaults to same-origin as the host page. */
serverUrl?: string;
/** Initial theme; falls back to the server's branding.defaultTheme, then "system". */
theme?: Theme;
/** Auth token for servers with `server.token` set — the host app supplies it, no token screen shown. */
token?: string;
/**
* Project the widget is bound to, by its resolved root path. Defaults to the
* server's default project.
*
* Which project an embedded widget shows is the host's decision, not its user's:
* the widget offers no project switching whatever this is set to. A root that is
* not open falls back to the default rather than failing, so a project closed
* server-side leaves a working widget instead of a dead socket.
*/
workspace?: string;
}
/**
* Theme the widget starts in. Spelled out here rather than re-exported from
* @pi-outpost/shared: that package is private to this repo, so a published
* `mount.d.ts` importing from it would resolve to nothing in a consumer's
* project. The assignment below keeps the two in step.
*/
export declare type Theme = "light" | "dark" | "system";
export { }