import { z } from "zod/v4";
/**
 * Request/response contracts for the `/configs/*` REST family — LLM profile
 * and proxy CRUD that the Web UI drives. Kept distinct from
 * `rest-contracts.ts` so the wave-1 UI work doesn't touch the
 * already-stable bootstrap/task schemas.
 *
 * Notes:
 *   - LLM profile responses include `api_key` / `image_api_key` in plaintext
 *     for the admin UI's reveal/copy affordance (internal-use project; see
 *     CLAUDE.md). dp-worker bootstrap reads the same secrets via a separate
 *     schema (`LlmProfileSchema` in rest-contracts.ts).
 *   - Proxy responses include `password` in plaintext for the same reason
 *     (admin UI reveal/copy).
 *   - `base_url` is sanitized server-side per the project convention (strip
 *     trailing `/v1`); the client can send either form.
 */
export declare const LlmProfileBodySchema: z.ZodObject<{
    name: z.ZodString;
    protocol: z.ZodEnum<{
        openai: "openai";
        claude: "claude";
    }>;
    base_url: z.ZodString;
    api_key: z.ZodString;
    model: z.ZodString;
    image_model: z.ZodOptional<z.ZodString>;
    image_api_key: z.ZodOptional<z.ZodString>;
    image_size: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type LlmProfileBody = z.infer<typeof LlmProfileBodySchema>;
export declare const LlmProfilePatchSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    protocol: z.ZodOptional<z.ZodEnum<{
        openai: "openai";
        claude: "claude";
    }>>;
    base_url: z.ZodOptional<z.ZodString>;
    api_key: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
    image_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    image_api_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    image_size: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$strip>;
export type LlmProfilePatch = z.infer<typeof LlmProfilePatchSchema>;
export declare const LlmProfileListItemSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    protocol: z.ZodEnum<{
        openai: "openai";
        claude: "claude";
    }>;
    base_url: z.ZodString;
    api_key: z.ZodString;
    model: z.ZodString;
    image_model: z.ZodOptional<z.ZodString>;
    image_api_key: z.ZodOptional<z.ZodString>;
    image_size: z.ZodOptional<z.ZodString>;
    in_use_by_worker_count: z.ZodNumber;
    created_at: z.ZodString;
    updated_at: z.ZodString;
}, z.core.$strip>;
export type LlmProfileListItem = z.infer<typeof LlmProfileListItemSchema>;
export declare const LlmProfileTestResultSchema: z.ZodObject<{
    ok: z.ZodBoolean;
    latency_ms: z.ZodNumber;
    detail: z.ZodString;
}, z.core.$strip>;
export type LlmProfileTestResult = z.infer<typeof LlmProfileTestResultSchema>;
export declare const ProxyBodySchema: z.ZodObject<{
    label: z.ZodString;
    protocol: z.ZodEnum<{
        socks5: "socks5";
        socks4: "socks4";
        http: "http";
        https: "https";
    }>;
    host: z.ZodString;
    port: z.ZodNumber;
    username: z.ZodString;
    password: z.ZodString;
    timezone: z.ZodString;
    note: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type ProxyBody = z.infer<typeof ProxyBodySchema>;
export declare const ProxyPatchSchema: z.ZodObject<{
    label: z.ZodOptional<z.ZodString>;
    protocol: z.ZodOptional<z.ZodEnum<{
        socks5: "socks5";
        socks4: "socks4";
        http: "http";
        https: "https";
    }>>;
    host: z.ZodOptional<z.ZodString>;
    port: z.ZodOptional<z.ZodNumber>;
    username: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    timezone: z.ZodOptional<z.ZodString>;
    note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$strip>;
export type ProxyPatch = z.infer<typeof ProxyPatchSchema>;
export declare const ProxyListItemSchema: 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;
    password: z.ZodString;
    timezone: z.ZodString;
    note: z.ZodOptional<z.ZodString>;
    in_use_by_worker_id: z.ZodOptional<z.ZodString>;
    in_use_by_worker_name: z.ZodOptional<z.ZodString>;
    bound_worker_id: z.ZodOptional<z.ZodString>;
    bound_worker_name: z.ZodOptional<z.ZodString>;
    bound_identity_id: z.ZodOptional<z.ZodString>;
    bound_identity_name: z.ZodOptional<z.ZodString>;
    bound_identity_count: z.ZodDefault<z.ZodNumber>;
    created_at: z.ZodString;
    updated_at: z.ZodString;
}, z.core.$strip>;
export type ProxyListItem = z.infer<typeof ProxyListItemSchema>;
export declare const ProxyTestResultSchema: z.ZodObject<{
    ok: z.ZodBoolean;
    latency_ms: z.ZodNumber;
    detail: z.ZodString;
}, z.core.$strip>;
export type ProxyTestResult = z.infer<typeof ProxyTestResultSchema>;
export declare const DirectorListItemSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    host_label: z.ZodString;
    api_key: z.ZodString;
    status: z.ZodEnum<{
        offline: "offline";
        online: "online";
    }>;
    max_concurrent_tasks: z.ZodDefault<z.ZodNumber>;
    last_heartbeat_at: z.ZodOptional<z.ZodString>;
    version: z.ZodOptional<z.ZodString>;
    dp_worker_version: z.ZodOptional<z.ZodString>;
    dp_worker_latest_version: z.ZodOptional<z.ZodString>;
    dp_worker_runtime_mode: z.ZodOptional<z.ZodEnum<{
        npm: "npm";
        "dev-dist": "dev-dist";
    }>>;
    dp_worker_upgrade_status: z.ZodOptional<z.ZodEnum<{
        idle: "idle";
        checking: "checking";
        installing: "installing";
        building: "building";
        restarting: "restarting";
        success: "success";
        skipped: "skipped";
        failed: "failed";
    }>>;
    dp_worker_upgrade_message: z.ZodOptional<z.ZodString>;
    dp_worker_upgrade_started_at: z.ZodOptional<z.ZodString>;
    dp_worker_upgrade_finished_at: z.ZodOptional<z.ZodString>;
    created_at: z.ZodString;
    updated_at: z.ZodString;
}, z.core.$strip>;
export type DirectorListItem = z.infer<typeof DirectorListItemSchema>;
export declare const DirectorCreateBodySchema: z.ZodObject<{
    name: z.ZodString;
    host_label: z.ZodString;
    api_key: z.ZodOptional<z.ZodString>;
    max_concurrent_tasks: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
export type DirectorCreateBody = z.infer<typeof DirectorCreateBodySchema>;
export declare const DirectorPatchSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    host_label: z.ZodOptional<z.ZodString>;
    api_key: z.ZodOptional<z.ZodString>;
    max_concurrent_tasks: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type DirectorPatch = z.infer<typeof DirectorPatchSchema>;
export declare const DispatchSettingsSchema: z.ZodObject<{
    global_max_concurrent_tasks: z.ZodDefault<z.ZodNumber>;
    updated_at: z.ZodString;
}, z.core.$strip>;
export type DispatchSettings = z.infer<typeof DispatchSettingsSchema>;
export declare const DispatchSettingsPatchSchema: z.ZodObject<{
    global_max_concurrent_tasks: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type DispatchSettingsPatch = z.infer<typeof DispatchSettingsPatchSchema>;
//# sourceMappingURL=configs-contracts.d.ts.map