import { z } from 'zod/v4';

declare const handoffLocalGitStateSchema: z.ZodObject<{
    head: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
    branch: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
    upstreamHead: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
    upstreamRemote: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
    upstreamMergeRef: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
}, z.core.$strip>;
declare const remoteMcpServerSchema: z.ZodObject<{
    type: z.ZodEnum<{
        http: "http";
        sse: "sse";
    }>;
    name: z.ZodString;
    url: z.ZodURL;
    headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        value: z.ZodString;
    }, z.core.$strip>>>;
}, z.core.$strip>;
declare const mcpServersSchema: z.ZodArray<z.ZodObject<{
    type: z.ZodEnum<{
        http: "http";
        sse: "sse";
    }>;
    name: z.ZodString;
    url: z.ZodURL;
    headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        value: z.ZodString;
    }, z.core.$strip>>>;
}, z.core.$strip>>;
type RemoteMcpServer = z.infer<typeof remoteMcpServerSchema>;
declare const claudeCodeConfigSchema: z.ZodObject<{
    systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        type: z.ZodLiteral<"preset">;
        preset: z.ZodLiteral<"claude_code">;
        append: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>]>>;
    plugins: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"local">;
        path: z.ZodString;
    }, z.core.$strip>>>;
}, z.core.$strip>;
declare const jsonRpcRequestSchema: z.ZodObject<{
    jsonrpc: z.ZodLiteral<"2.0">;
    method: z.ZodString;
    params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    id: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
}, z.core.$strip>;
type JsonRpcRequest = z.infer<typeof jsonRpcRequestSchema>;
declare const userMessageParamsSchema: z.ZodObject<{
    content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>]>>;
    artifacts: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, z.core.$strip>;
declare const permissionResponseParamsSchema: z.ZodObject<{
    requestId: z.ZodString;
    optionId: z.ZodString;
    customInput: z.ZodOptional<z.ZodString>;
    answers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.core.$strip>;
declare const setConfigOptionParamsSchema: z.ZodObject<{
    configId: z.ZodString;
    value: z.ZodString;
}, z.core.$strip>;
declare const refreshSessionParamsSchema: z.ZodObject<{
    mcpServers: z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
            http: "http";
            sse: "sse";
        }>;
        name: z.ZodString;
        url: z.ZodURL;
        headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            value: z.ZodString;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const closeParamsSchema: z.ZodOptional<z.ZodObject<{
    localGitState: z.ZodOptional<z.ZodObject<{
        head: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
        branch: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
        upstreamHead: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
        upstreamRemote: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
        upstreamMergeRef: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
    }, z.core.$strip>>;
}, z.core.$strip>>;
declare const commandParamsSchemas: {
    readonly user_message: z.ZodObject<{
        content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>]>>;
        artifacts: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
    }, z.core.$strip>;
    readonly "posthog/user_message": z.ZodObject<{
        content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>]>>;
        artifacts: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
    }, z.core.$strip>;
    readonly cancel: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
    readonly "posthog/cancel": z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
    readonly close: z.ZodOptional<z.ZodObject<{
        localGitState: z.ZodOptional<z.ZodObject<{
            head: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            branch: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            upstreamHead: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            upstreamRemote: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            upstreamMergeRef: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    readonly "posthog/close": z.ZodOptional<z.ZodObject<{
        localGitState: z.ZodOptional<z.ZodObject<{
            head: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            branch: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            upstreamHead: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            upstreamRemote: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
            upstreamMergeRef: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    readonly permission_response: z.ZodObject<{
        requestId: z.ZodString;
        optionId: z.ZodString;
        customInput: z.ZodOptional<z.ZodString>;
        answers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strip>;
    readonly "posthog/permission_response": z.ZodObject<{
        requestId: z.ZodString;
        optionId: z.ZodString;
        customInput: z.ZodOptional<z.ZodString>;
        answers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strip>;
    readonly set_config_option: z.ZodObject<{
        configId: z.ZodString;
        value: z.ZodString;
    }, z.core.$strip>;
    readonly "posthog/set_config_option": z.ZodObject<{
        configId: z.ZodString;
        value: z.ZodString;
    }, z.core.$strip>;
    readonly refresh_session: z.ZodObject<{
        mcpServers: z.ZodArray<z.ZodObject<{
            type: z.ZodEnum<{
                http: "http";
                sse: "sse";
            }>;
            name: z.ZodString;
            url: z.ZodURL;
            headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
                name: z.ZodString;
                value: z.ZodString;
            }, z.core.$strip>>>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    readonly "posthog/refresh_session": z.ZodObject<{
        mcpServers: z.ZodArray<z.ZodObject<{
            type: z.ZodEnum<{
                http: "http";
                sse: "sse";
            }>;
            name: z.ZodString;
            url: z.ZodURL;
            headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
                name: z.ZodString;
                value: z.ZodString;
            }, z.core.$strip>>>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    readonly "_posthog/refresh_session": z.ZodObject<{
        mcpServers: z.ZodArray<z.ZodObject<{
            type: z.ZodEnum<{
                http: "http";
                sse: "sse";
            }>;
            name: z.ZodString;
            url: z.ZodURL;
            headers: z.ZodDefault<z.ZodArray<z.ZodObject<{
                name: z.ZodString;
                value: z.ZodString;
            }, z.core.$strip>>>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
};
type CommandMethod = keyof typeof commandParamsSchemas;
declare function validateCommandParams(method: string, params: unknown): {
    success: true;
    data: unknown;
} | {
    success: false;
    error: string;
};

export { type CommandMethod, type JsonRpcRequest, type RemoteMcpServer, claudeCodeConfigSchema, closeParamsSchema, commandParamsSchemas, handoffLocalGitStateSchema, jsonRpcRequestSchema, mcpServersSchema, permissionResponseParamsSchema, refreshSessionParamsSchema, setConfigOptionParamsSchema, userMessageParamsSchema, validateCommandParams };
