import { type LookoutConfig, type ResolvedConfig } from "./types.js"; export interface LoadOptions { /** Explicit config path from --config. */ configPath?: string; /** Zero-config base URL from --url: REPLACES the config with one target. */ url?: string; /** * Base URL from --base-url: OVERRIDES where the config's targets live, * keeping everything else about them. * * The difference from `url` is the whole point. `url` short-circuits the * config file entirely, so the routes, viewports, state recipes and signIn * hook a project wrote all vanish and the run captures "/" of one origin. * That is right for pointing lookout at something it knows nothing about, and * wrong for the common case of a configured project whose dev server came up * somewhere else today. This keeps the config and moves the targets. */ baseUrl?: string; /** Search start directory (defaults to cwd). */ cwd?: string; } /** * Move every target to a different origin, keeping everything else. * * A dev server that came up on another port does not make a project's routes, * viewports, recipes or sign-in hook wrong, so overriding the origin must not * discard them. Only the origin is replaced: any path a target's URL carried is * kept, because that is part of where the app is mounted rather than part of * which machine it is on. */ export declare function applyBaseUrl(config: LookoutConfig, baseUrl: string): void; export declare function loadConfig(opts?: LoadOptions): Promise; export { validateConfig } from "./config-validate.js"; export declare function assertTargetsAllowed(config: LookoutConfig, allowRemote: boolean): void; /** * The project's own lookout directory: the backlog, the issue folders, the * ledger, the skill amendments. The durable record of what lookout found, * which belongs to the project. */ export declare function lookoutDir(resolved: ResolvedConfig): string; /** * The capture workspace: screenshots, the capture report, the run log, the * contact sheet. * * Inside the project's own `.lookout/`, which is gitignored, so it travels * with the checkout it describes and with nothing else. It is still working * state one capture rebuilds, which is why it is a directory of its own * rather than loose beside the backlog: the pixels worth keeping are copied * into the issue folders the moment an issue is filed, and everything here * can be deleted without costing the project a defect. * * `workspace`, not `evidence`: `.lookout/evidence/` is the pre-0.35 store * that `backlog.ts` and `issues/frames.ts` still adopt from, and one name for * both would make a live report indistinguishable from an inherited one. */ export declare function evidenceDir(resolved: ResolvedConfig): string; /** The workspace's directory name inside `.lookout/`. */ export declare const WORKSPACE_DIR = "workspace";