import { z } from 'zod/v4';
import { type APIClient } from '../api.ts';
import { type CoderSession, type CoderSessionListResponse } from './types.ts';
export declare const CoderLifecycleResponseSchema: z.ZodObject<{
    sessionId: z.ZodString;
    status: z.ZodOptional<z.ZodString>;
}, z.core.$loose>;
export declare const CoderSessionIdParamsSchema: z.ZodObject<{
    sessionId: z.ZodString;
    orgId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type CoderSessionIdParams = z.infer<typeof CoderSessionIdParamsSchema>;
export declare const CoderCreateSessionParamsSchema: z.ZodObject<{
    body: z.ZodObject<{
        task: z.ZodString;
        label: z.ZodOptional<z.ZodString>;
        agent: z.ZodOptional<z.ZodString>;
        defaultAgent: z.ZodOptional<z.ZodString>;
        visibility: z.ZodOptional<z.ZodEnum<{
            private: "private";
            organization: "organization";
            collaborate: "collaborate";
        }>>;
        workflowMode: z.ZodOptional<z.ZodEnum<{
            standard: "standard";
            loop: "loop";
        }>>;
        loop: z.ZodOptional<z.ZodObject<{
            goal: z.ZodOptional<z.ZodString>;
            maxIterations: z.ZodOptional<z.ZodNumber>;
            autoContinue: z.ZodOptional<z.ZodBoolean>;
            allowDetached: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>;
        tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
        enabledAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
        savedSkillIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
        skillBucketIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
        skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
            skillId: z.ZodString;
            repo: z.ZodString;
            name: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
            content: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
        repo: z.ZodOptional<z.ZodObject<{
            repoId: z.ZodOptional<z.ZodString>;
            type: z.ZodOptional<z.ZodString>;
            provider: z.ZodOptional<z.ZodString>;
            owner: z.ZodOptional<z.ZodString>;
            name: z.ZodOptional<z.ZodString>;
            fullName: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
            cloneUrl: z.ZodOptional<z.ZodString>;
            defaultBranch: z.ZodOptional<z.ZodString>;
            branch: z.ZodOptional<z.ZodString>;
            ref: z.ZodOptional<z.ZodString>;
            commit: z.ZodOptional<z.ZodString>;
            path: z.ZodOptional<z.ZodString>;
            rootPath: z.ZodOptional<z.ZodString>;
        }, z.core.$catchall<z.ZodUnknown>>>;
        repos: z.ZodOptional<z.ZodArray<z.ZodObject<{
            repoId: z.ZodOptional<z.ZodString>;
            type: z.ZodOptional<z.ZodString>;
            provider: z.ZodOptional<z.ZodString>;
            owner: z.ZodOptional<z.ZodString>;
            name: z.ZodOptional<z.ZodString>;
            fullName: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
            cloneUrl: z.ZodOptional<z.ZodString>;
            defaultBranch: z.ZodOptional<z.ZodString>;
            branch: z.ZodOptional<z.ZodString>;
            ref: z.ZodOptional<z.ZodString>;
            commit: z.ZodOptional<z.ZodString>;
            path: z.ZodOptional<z.ZodString>;
            rootPath: z.ZodOptional<z.ZodString>;
        }, z.core.$catchall<z.ZodUnknown>>>>;
        workspaceId: z.ZodOptional<z.ZodString>;
        env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strip>;
    orgId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type CoderCreateSessionParams = z.infer<typeof CoderCreateSessionParamsSchema>;
export declare const CoderCreateAgentBuilderSessionParamsSchema: z.ZodObject<{
    body: z.ZodObject<{
        label: z.ZodOptional<z.ZodString>;
        prompt: z.ZodOptional<z.ZodString>;
        mode: z.ZodOptional<z.ZodEnum<{
            edit: "edit";
            new: "new";
            from_session: "from_session";
        }>>;
        visibility: z.ZodOptional<z.ZodEnum<{
            private: "private";
            organization: "organization";
            collaborate: "collaborate";
        }>>;
        sourceSessionId: z.ZodOptional<z.ZodString>;
        targetAgentId: z.ZodOptional<z.ZodString>;
        targetAgentSlug: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    orgId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type CoderCreateAgentBuilderSessionParams = z.infer<typeof CoderCreateAgentBuilderSessionParamsSchema>;
export declare const CoderGetSessionParamsSchema: z.ZodObject<{
    sessionId: z.ZodString;
    orgId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type CoderGetSessionParams = z.infer<typeof CoderGetSessionParamsSchema>;
export declare const CoderUpdateSessionParamsSchema: z.ZodObject<{
    sessionId: z.ZodString;
    body: z.ZodObject<{
        label: z.ZodOptional<z.ZodString>;
        agent: z.ZodOptional<z.ZodString>;
        defaultAgent: z.ZodOptional<z.ZodString>;
        visibility: z.ZodOptional<z.ZodEnum<{
            private: "private";
            organization: "organization";
            collaborate: "collaborate";
        }>>;
        workflowMode: z.ZodOptional<z.ZodEnum<{
            standard: "standard";
            loop: "loop";
        }>>;
        loop: z.ZodOptional<z.ZodObject<{
            goal: z.ZodOptional<z.ZodString>;
            maxIterations: z.ZodOptional<z.ZodNumber>;
            autoContinue: z.ZodOptional<z.ZodBoolean>;
            allowDetached: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>;
        tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
        enabledAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
        skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
            skillId: z.ZodString;
            repo: z.ZodString;
            name: z.ZodOptional<z.ZodString>;
            url: z.ZodOptional<z.ZodString>;
            content: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strip>;
    orgId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type CoderUpdateSessionParams = z.infer<typeof CoderUpdateSessionParamsSchema>;
export declare const CoderListSessionsParamsWithOrgSchema: z.ZodObject<{
    search: z.ZodOptional<z.ZodString>;
    includeArchived: z.ZodOptional<z.ZodBoolean>;
    limit: z.ZodOptional<z.ZodNumber>;
    offset: z.ZodOptional<z.ZodNumber>;
    orgId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type CoderListSessionsParamsWithOrg = z.infer<typeof CoderListSessionsParamsWithOrgSchema>;
export declare const CoderListConnectableSessionsParamsSchema: z.ZodObject<{
    search: z.ZodOptional<z.ZodString>;
    limit: z.ZodOptional<z.ZodNumber>;
    offset: z.ZodOptional<z.ZodNumber>;
    orgId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type CoderListConnectableSessionsParams = z.infer<typeof CoderListConnectableSessionsParamsSchema>;
export interface CoderCreateSessionResponse {
    sessionId: string;
    sandboxId?: string | null;
    status: string;
    mode?: string;
    visibility?: string;
}
export declare function coderCreateSession(client: APIClient, params: CoderCreateSessionParams): Promise<CoderCreateSessionResponse>;
export declare function coderCreateAgentBuilderSession(client: APIClient, params: CoderCreateAgentBuilderSessionParams): Promise<CoderCreateSessionResponse>;
export declare function coderGetSession(client: APIClient, params: CoderGetSessionParams): Promise<CoderSession>;
export interface CoderUpdateSessionResponse {
    sessionId: string;
    label?: string;
    visibility?: string;
    tags?: string[];
    skills?: unknown[];
    defaultAgent?: string | null;
}
export declare function coderUpdateSession(client: APIClient, params: CoderUpdateSessionParams): Promise<CoderUpdateSessionResponse>;
export declare function coderListSessions(client: APIClient, params?: CoderListSessionsParamsWithOrg): Promise<CoderSessionListResponse>;
export declare function coderDeleteSession(client: APIClient, params: CoderSessionIdParams): Promise<void>;
export interface CoderLifecycleResponse {
    sessionId: string;
    status?: string;
}
export declare function coderArchiveSession(client: APIClient, params: CoderSessionIdParams): Promise<CoderLifecycleResponse>;
export declare function coderResumeSession(client: APIClient, params: CoderSessionIdParams): Promise<CoderLifecycleResponse>;
export declare function coderListConnectableSessions(client: APIClient, params?: CoderListConnectableSessionsParams): Promise<CoderSessionListResponse>;
//# sourceMappingURL=sessions.d.ts.map