import type { Config } from '../../config/schema.js';
export interface InitWorkspaceCoreOptions {
    configPath: string;
    workspacePath: string;
    /** When set with a new config file, overrides schema default port (e.g. Electron). */
    gatewayPort?: number;
    /**
     * When true, sets `agents.defaults.workspace` to `dirname(workspacePath)` (parent of the
     * Markdown root being initialised, e.g. `…/workspace` when `workspacePath` is `…/workspace/main`).
     */
    persistWorkspacePath?: boolean;
    /** Optional channel plugin validator (CLI/gateway only; Electron omits). */
    assertChannelPlugins?: (cfg: Config) => void | Promise<void>;
}
export interface InitWorkspaceResult {
    /** Fully-initialised config (matches disk after any write). */
    config: Config;
    /** Gateway auth token (always present after init). */
    token: string;
    configCreated: boolean;
    workspaceCreated: boolean;
}
/**
 * Workspace + config initialisation without importing bundled channel plugins.
 * Used by Electron main; CLI/gateway should call {@link initWorkspace} instead.
 */
export declare function initWorkspaceCore(options: InitWorkspaceCoreOptions): Promise<InitWorkspaceResult>;
