export interface ProjectBinding { version: 1; project_id: string; kind: string; base_url: string; } export interface LocatedBinding { root: string; binding: ProjectBinding; } /** Canonicalize a server address without allowing embedded credentials. */ export declare function bindingBaseUrl(value: string): string; /** Validate persisted data strictly; a binding never contains credentials. */ export declare function parseBinding(value: unknown): ProjectBinding; /** Find the nearest binding, rejecting malformed or symlinked local state. */ export declare function findProjectBinding(cwd?: string): LocatedBinding | undefined; /** Resolve project selection and reject a checkout bound to another server. */ export declare function resolveProjectSelection(options: { baseUrl: string; explicit?: string; environment?: string; legacy?: string; cwd?: string; }): string | undefined; /** Create private local state without following a .gsk symlink. */ export declare function projectStateDirectory(root: string): string; /** Atomically publish a new JSON file, never overwriting a concurrent writer. */ export declare function writeNewProjectState(root: string, name: string, value: unknown): string; /** Bind the checkout once; a different existing or inherited binding needs manual resolution. */ export declare function writeProjectBinding(value: ProjectBinding, cwd?: string): string; //# sourceMappingURL=project-binding.d.ts.map