import type { RunStore } from "../run-state/index.js";
import type { SeedToolPath, SeedToolPathAccess } from "../policy/types.js";
import type { SeedWorkspaceLease } from "./types.js";
export type SeedWorkspaceLeaseViolation = {
    path: string;
    access: SeedToolPathAccess;
    reason: string;
};
export declare function findCoveringWorkspaceLease(input: {
    path: string;
    access: SeedToolPathAccess;
    leases: SeedWorkspaceLease[];
    owner?: string;
    leaseIds?: string[];
}): SeedWorkspaceLease | undefined;
export declare function missingActiveWorkspaceLeases(input: {
    paths: SeedToolPath[];
    leases: SeedWorkspaceLease[];
    owner?: string;
    leaseIds?: string[];
}): SeedToolPath[];
export declare function matchedWorkspaceLeaseIds(input: {
    paths: SeedToolPath[];
    leases: SeedWorkspaceLease[];
    owner?: string;
}): string[];
export declare function workspacePathWithin(requested: string, allowedPath: string): boolean;
export declare function normalizeWorkspacePolicyPath(value: string): string;
export declare function recordWorkspaceLeaseViolation(store: RunStore, runId: string, input: {
    actor: string;
    path: string;
    summary: string;
    lease_ids?: string[];
}): Promise<import("./types.js").SeedWorkspaceConflict>;
