import { z } from "zod/v4";
/**
 * REST contracts for the Web-UI /workers/:id detail surface (wave 1 Agent B).
 *
 * Split out from rest-contracts.ts to keep the existing wire surface stable
 * while the dp-worker detail tabs land; everything here is browser-facing and
 * never reaches the dp-worker or dp-director.
 */
/**
 * Body for POST /api/workers. The api_key may be supplied by the caller (64
 * lowercase hex chars — 32 crypto-random bytes) or omitted to have the
 * server generate one. The column is stored plaintext per v2.13, so the
 * operator can read or reset it later from the dp-worker detail surface.
 */
export declare const WorkerCreateRequestSchema: z.ZodObject<{
    name: z.ZodString;
    director_id: z.ZodOptional<z.ZodString>;
    llm_profile_id: z.ZodString;
    proxy_id: z.ZodOptional<z.ZodString>;
    identity_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    api_key: z.ZodOptional<z.ZodString>;
    telegram_bot_token: z.ZodOptional<z.ZodString>;
    telegram_allowed_users: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
    headless: z.ZodOptional<z.ZodBoolean>;
    browser_automation_mode: z.ZodOptional<z.ZodEnum<{
        chrome: "chrome";
        cloakbrowser: "cloakbrowser";
    }>>;
}, z.core.$strip>;
export type WorkerCreateRequest = z.infer<typeof WorkerCreateRequestSchema>;
/** The plaintext api_key wire shape returned after create. */
export declare const WorkerCreateResponseSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    api_key: z.ZodString;
    config_etag: z.ZodString;
}, z.core.$strip>;
export type WorkerCreateResponse = z.infer<typeof WorkerCreateResponseSchema>;
export declare const WorkerDetailResponseSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    director_id: z.ZodOptional<z.ZodString>;
    director: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        host_label: z.ZodString;
        status: z.ZodEnum<{
            offline: "offline";
            online: "online";
        }>;
    }, z.core.$strip>>;
    status: z.ZodEnum<{
        error: "error";
        crashed: "crashed";
        unknown: "unknown";
        idle: "idle";
        busy: "busy";
        offline: "offline";
    }>;
    process_status: z.ZodOptional<z.ZodEnum<{
        running: "running";
        stopped: "stopped";
        crashed: "crashed";
        unknown: "unknown";
    }>>;
    runtime_status: z.ZodOptional<z.ZodEnum<{
        error: "error";
        unknown: "unknown";
        idle: "idle";
        busy: "busy";
    }>>;
    process_observed_at: z.ZodOptional<z.ZodString>;
    runtime_observed_at: z.ZodOptional<z.ZodString>;
    last_heartbeat_at: z.ZodOptional<z.ZodString>;
    effective_status: z.ZodOptional<z.ZodEnum<{
        error: "error";
        crashed: "crashed";
        unknown: "unknown";
        idle: "idle";
        busy: "busy";
        offline: "offline";
    }>>;
    current_task_id: z.ZodOptional<z.ZodString>;
    config_etag: z.ZodString;
    headless: z.ZodBoolean;
    browser_automation_mode: z.ZodDefault<z.ZodEnum<{
        chrome: "chrome";
        cloakbrowser: "cloakbrowser";
    }>>;
    identity_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    telegram_bot_token: z.ZodNullable<z.ZodString>;
    telegram_allowed_users: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
    created_at: z.ZodString;
    updated_at: z.ZodString;
    proxy: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        protocol: z.ZodEnum<{
            socks5: "socks5";
            socks4: "socks4";
            http: "http";
            https: "https";
        }>;
        host: z.ZodString;
        port: z.ZodNumber;
        username: z.ZodString;
        timezone: z.ZodString;
    }, z.core.$strip>>;
    llm_profile: z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        model: z.ZodString;
    }, z.core.$strip>;
    social_accounts_count: z.ZodNumber;
    scheduled_tasks_count: z.ZodNumber;
    current_session: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        content_hash: z.ZodString;
        size_bytes: z.ZodNumber;
        uploaded_at: z.ZodString;
        uploaded_by: z.ZodString;
        r2_object_key: z.ZodString;
    }, z.core.$strip>>;
    api_key: z.ZodString;
    identity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        email: z.ZodString;
        password: z.ZodNullable<z.ZodString>;
        proxy_id: z.ZodNullable<z.ZodString>;
        persona_text: z.ZodString;
        bound_worker_id: z.ZodOptional<z.ZodString>;
        bound_worker_name: z.ZodOptional<z.ZodString>;
        created_at: z.ZodString;
        updated_at: z.ZodString;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type WorkerDetailResponse = z.infer<typeof WorkerDetailResponseSchema>;
export declare const SocialAccountBodySchema: z.ZodObject<{
    platform: z.ZodEnum<{
        x: "x";
        youtube: "youtube";
        reddit: "reddit";
    }>;
    profile_name: z.ZodString;
    login_type: z.ZodEnum<{
        password: "password";
        oauth: "oauth";
    }>;
    username: z.ZodOptional<z.ZodString>;
    email: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    persona_text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    persona_other_json: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    enabled: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type SocialAccountBody = z.infer<typeof SocialAccountBodySchema>;
export declare const SocialAccountPatchSchema: z.ZodObject<{
    profile_name: z.ZodOptional<z.ZodString>;
    login_type: z.ZodOptional<z.ZodEnum<{
        password: "password";
        oauth: "oauth";
    }>>;
    username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    password: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    persona_text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    persona_other_json: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
    enabled: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type SocialAccountPatch = z.infer<typeof SocialAccountPatchSchema>;
export declare const SocialAccountResponseSchema: z.ZodObject<{
    id: z.ZodString;
    identity_id: z.ZodString;
    platform: z.ZodEnum<{
        x: "x";
        youtube: "youtube";
        reddit: "reddit";
        instagram: "instagram";
        tiktok: "tiktok";
    }>;
    profile_name: z.ZodString;
    login_type: z.ZodEnum<{
        password: "password";
        oauth: "oauth";
    }>;
    username: z.ZodNullable<z.ZodString>;
    email: z.ZodNullable<z.ZodString>;
    password: z.ZodNullable<z.ZodString>;
    persona_text: z.ZodNullable<z.ZodString>;
    persona_other_json: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    enabled: z.ZodBoolean;
    created_at: z.ZodString;
    updated_at: z.ZodString;
}, z.core.$strip>;
export type SocialAccountResponse = z.infer<typeof SocialAccountResponseSchema>;
export declare const ChromeSessionListRowSchema: z.ZodObject<{
    id: z.ZodString;
    content_hash: z.ZodString;
    size_bytes: z.ZodNumber;
    uploaded_at: z.ZodString;
    uploaded_by: z.ZodString;
    r2_object_key: z.ZodString;
    note: z.ZodOptional<z.ZodString>;
    is_current: z.ZodBoolean;
}, z.core.$strip>;
export type ChromeSessionListRow = z.infer<typeof ChromeSessionListRowSchema>;
export declare const ListChromeSessionsResponseSchema: z.ZodObject<{
    items: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        content_hash: z.ZodString;
        size_bytes: z.ZodNumber;
        uploaded_at: z.ZodString;
        uploaded_by: z.ZodString;
        r2_object_key: z.ZodString;
        note: z.ZodOptional<z.ZodString>;
        is_current: z.ZodBoolean;
    }, z.core.$strip>>;
    next_cursor: z.ZodNullable<z.ZodString>;
}, z.core.$strip>;
export type ListChromeSessionsResponse = z.infer<typeof ListChromeSessionsResponseSchema>;
//# sourceMappingURL=worker-detail-contracts.d.ts.map