import { z } from 'zod';
export declare const DoctorSnapshotServerProfileSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    serverUrl: z.ZodString;
    publicServerUrl: z.ZodOptional<z.ZodString>;
    webappUrl: z.ZodString;
    createdAt: z.ZodNumber;
    updatedAt: z.ZodNumber;
    lastUsedAt: z.ZodNumber;
}, z.core.$strip>;
export type DoctorSnapshotServerProfile = z.infer<typeof DoctorSnapshotServerProfileSchema>;
export declare const DoctorSnapshotDaemonStatusSchema: z.ZodObject<{
    server: z.ZodObject<{
        activeServerId: z.ZodString;
        serverUrl: z.ZodString;
        localServerUrl: z.ZodNullable<z.ZodString>;
        publicServerUrl: z.ZodString;
        webappUrl: z.ZodString;
        comparableKey: z.ZodNullable<z.ZodString>;
    }, z.core.$strip>;
    daemon: z.ZodObject<{
        running: z.ZodBoolean;
        pid: z.ZodNullable<z.ZodNumber>;
        httpPort: z.ZodNullable<z.ZodNumber>;
    }, z.core.$strip>;
    service: z.ZodObject<{
        installed: z.ZodBoolean;
        running: z.ZodBoolean;
    }, z.core.$strip>;
    auth: z.ZodObject<{
        authenticated: z.ZodBoolean;
        machineRegistered: z.ZodBoolean;
        machineId: z.ZodNullable<z.ZodString>;
        needsAuth: z.ZodBoolean;
        accountId: z.ZodNullable<z.ZodString>;
    }, z.core.$strip>;
}, z.core.$strip>;
export type DoctorSnapshotDaemonStatus = z.infer<typeof DoctorSnapshotDaemonStatusSchema>;
export declare const DoctorSnapshotSchema: z.ZodObject<{
    capturedAt: z.ZodString;
    server: z.ZodObject<{
        activeServerId: z.ZodString;
        serverUrl: z.ZodString;
        publicServerUrl: z.ZodString;
        webappUrl: z.ZodString;
    }, z.core.$strip>;
    accountId: z.ZodNullable<z.ZodString>;
    settings: z.ZodObject<{
        activeServerId: z.ZodNullable<z.ZodString>;
        servers: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            serverUrl: z.ZodString;
            publicServerUrl: z.ZodOptional<z.ZodString>;
            webappUrl: z.ZodString;
            createdAt: z.ZodNumber;
            updatedAt: z.ZodNumber;
            lastUsedAt: z.ZodNumber;
        }, z.core.$strip>>;
        knownAccountIds: z.ZodArray<z.ZodString>;
    }, z.core.$strip>;
    daemonStatus: z.ZodOptional<z.ZodObject<{
        server: z.ZodObject<{
            activeServerId: z.ZodString;
            serverUrl: z.ZodString;
            localServerUrl: z.ZodNullable<z.ZodString>;
            publicServerUrl: z.ZodString;
            webappUrl: z.ZodString;
            comparableKey: z.ZodNullable<z.ZodString>;
        }, z.core.$strip>;
        daemon: z.ZodObject<{
            running: z.ZodBoolean;
            pid: z.ZodNullable<z.ZodNumber>;
            httpPort: z.ZodNullable<z.ZodNumber>;
        }, z.core.$strip>;
        service: z.ZodObject<{
            installed: z.ZodBoolean;
            running: z.ZodBoolean;
        }, z.core.$strip>;
        auth: z.ZodObject<{
            authenticated: z.ZodBoolean;
            machineRegistered: z.ZodBoolean;
            machineId: z.ZodNullable<z.ZodString>;
            needsAuth: z.ZodBoolean;
            accountId: z.ZodNullable<z.ZodString>;
        }, z.core.$strip>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type DoctorSnapshot = z.infer<typeof DoctorSnapshotSchema>;
export declare function sanitizeDoctorSnapshotUrls(snapshot: DoctorSnapshot): DoctorSnapshot;
export declare function parseDoctorSnapshotSafe(raw: string): {
    ok: true;
    snapshot: DoctorSnapshot;
} | {
    ok: false;
    error: string;
};
//# sourceMappingURL=doctorSnapshot.d.ts.map