import { z } from "zod";
export declare const pidLockInfoSchema: z.ZodObject<{
    pid: z.ZodNumber;
    startedAt: z.ZodString;
    hostname: z.ZodString;
    uid: z.ZodNumber;
    listen: z.ZodNullable<z.ZodString>;
    desktopManaged: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    hostname: string;
    uid: number;
    startedAt: string;
    listen: string | null;
    pid: number;
    desktopManaged?: boolean | undefined;
}, {
    hostname: string;
    uid: number;
    startedAt: string;
    listen: string | null;
    pid: number;
    desktopManaged?: boolean | undefined;
}>;
export interface PidLockInfo extends z.infer<typeof pidLockInfoSchema> {
}
export declare class PidLockError extends Error {
    readonly existingLock?: PidLockInfo | undefined;
    constructor(message: string, existingLock?: PidLockInfo | undefined);
}
export declare function acquirePidLock(paseoHome: string, listen: string | null, options?: {
    ownerPid?: number;
}): Promise<void>;
export declare function updatePidLock(paseoHome: string, patch: {
    listen: string;
}, options?: {
    ownerPid?: number;
}): Promise<void>;
export declare function releasePidLock(paseoHome: string, options?: {
    ownerPid?: number;
}): Promise<void>;
export declare function getPidLockInfo(paseoHome: string): Promise<PidLockInfo | null>;
export declare function isLocked(paseoHome: string): Promise<{
    locked: boolean;
    info?: PidLockInfo;
}>;
//# sourceMappingURL=pid-lock.d.ts.map