import type { Logger } from '@agentuity/client';
import { z } from 'zod/v4';
import { type CoderCreateSessionResponse, type CoderLifecycleResponse, type CoderCreateSessionParams, type CoderUpdateSessionResponse, type CoderListConnectableSessionsParams, type CoderListSessionsParamsWithOrg } from './sessions.ts';
import { type CoderGetLoopStateParams } from './loop-state.ts';
import { type CoderGetSessionReplayParams, type CoderListEventHistoryParams, type CoderListParticipantsParams } from './session-data.ts';
import { type CoderListUsersParamsWithOrg } from './users.ts';
import type { CoderGitHubAccountListResponse, CoderGitHubRepositoryListResponse, CoderCustomAgent, CoderCustomAgentListResponse, CoderCustomAgentVersionListResponse, CoderCreateAgentBuilderSessionRequest, CoderCreateCustomAgentRequest, CoderListUsersResponse, CoderSavedSkill, CoderSavedSkillListResponse, CoderLoopStateResponse, CoderSession, CoderSessionEventHistory, CoderSessionListResponse, CoderSessionParticipants, CoderSessionReplay, CoderSkillBucket, CoderSkillBucketListResponse, CoderCreateSkillBucketRequest, CoderCreateCustomSkillRequest, CoderUpdateCustomAgentRequest, CoderCreateWorkspaceRequest, CoderUpdateWorkspaceRequest, CoderWorkspaceDependencyValidationResponse, CoderWorkspaceDetail, CoderWorkspaceListResponse, CoderSaveSkillRequest, CoderUpdateSessionRequest } from './types.ts';
export declare const CoderClientOptionsSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    region: z.ZodOptional<z.ZodString>;
    orgId: z.ZodOptional<z.ZodString>;
    logger: z.ZodOptional<z.ZodCustom<Logger, Logger>>;
}, z.core.$strip>;
export type CoderClientOptions = z.infer<typeof CoderClientOptionsSchema>;
export interface CoderRemoteAttachPreparationOptions {
    timeoutMs?: number;
    pollIntervalMs?: number;
}
/**
 * Ergonomic client for Coder session management APIs.
 *
 * URL resolution strategy:
 * 1) options.url
 * 2) AGENTUITY_CODER_URL
 * 3) discover via Catalyst GET /coder
 */
export declare class CoderClient {
    #private;
    constructor(options?: CoderClientOptions);
    /**
     * Gets the active coder base URL, discovering it from Catalyst if needed.
     */
    getUrl(): Promise<string>;
    /**
     * Creates a new coder session.
     */
    createSession(body: CoderCreateSessionParams['body']): Promise<CoderCreateSessionResponse>;
    /**
     * Creates a dedicated agent-builder session.
     */
    createAgentBuilderSession(body: CoderCreateAgentBuilderSessionRequest): Promise<CoderCreateSessionResponse>;
    /**
     * Retrieves a coder session by id.
     */
    getSession(sessionId: string): Promise<CoderSession>;
    /**
     * Updates an existing coder session.
     */
    updateSession(sessionId: string, body: CoderUpdateSessionRequest): Promise<CoderUpdateSessionResponse>;
    /**
     * Lists coder sessions with optional filtering.
     */
    listSessions(params?: Omit<CoderListSessionsParamsWithOrg, 'orgId'>): Promise<CoderSessionListResponse>;
    /**
     * Permanently deletes a coder session.
     */
    deleteSession(sessionId: string): Promise<void>;
    /**
     * Archives an active coder session.
     */
    archiveSession(sessionId: string): Promise<CoderLifecycleResponse>;
    /**
     * Requests that a wakeable sandbox session be resumed.
     */
    resumeSession(sessionId: string): Promise<CoderLifecycleResponse>;
    /**
     * Makes sure a paused remote session is attachable before opening the controller socket.
     */
    prepareSessionForRemoteAttach(sessionId: string, options?: CoderRemoteAttachPreparationOptions): Promise<CoderSession>;
    /**
     * Lists sessions the caller can connect to.
     */
    listConnectableSessions(params?: Omit<CoderListConnectableSessionsParams, 'orgId'>): Promise<CoderSessionListResponse>;
    /**
     * Lists available workspaces.
     */
    listWorkspaces(): Promise<CoderWorkspaceListResponse>;
    /**
     * Retrieves a workspace by id.
     */
    getWorkspace(workspaceId: string): Promise<CoderWorkspaceDetail>;
    /**
     * Creates a new workspace.
     */
    createWorkspace(body: CoderCreateWorkspaceRequest): Promise<CoderWorkspaceDetail>;
    /**
     * Updates an existing workspace.
     */
    updateWorkspace(workspaceId: string, body: CoderUpdateWorkspaceRequest): Promise<CoderWorkspaceDetail>;
    /**
     * Queues a snapshot refresh for an existing workspace.
     */
    refreshWorkspaceSnapshot(workspaceId: string): Promise<CoderWorkspaceDetail>;
    /**
     * Validates APT package dependencies for workspace snapshot preparation.
     */
    validateWorkspaceDependencies(dependencies: string[]): Promise<CoderWorkspaceDependencyValidationResponse>;
    /**
     * Deletes a workspace.
     */
    deleteWorkspace(workspaceId: string): Promise<void>;
    /**
     * Lists custom agents in the org library.
     */
    listCustomAgents(options?: {
        includeArchived?: boolean;
    }): Promise<CoderCustomAgentListResponse>;
    /**
     * Retrieves a custom agent by id or slug.
     */
    getCustomAgent(agentIdOrSlug: string): Promise<CoderCustomAgent>;
    /**
     * Creates a new custom-agent draft.
     */
    createCustomAgent(body: CoderCreateCustomAgentRequest): Promise<CoderCustomAgent>;
    /**
     * Updates an existing custom-agent draft.
     */
    updateCustomAgent(agentIdOrSlug: string, body: CoderUpdateCustomAgentRequest): Promise<CoderCustomAgent>;
    /**
     * Publishes the latest custom-agent draft as a new immutable version.
     */
    publishCustomAgent(agentIdOrSlug: string): Promise<CoderCustomAgent>;
    /**
     * Archives a custom agent from the org library.
     */
    archiveCustomAgent(agentIdOrSlug: string): Promise<CoderCustomAgent>;
    /**
     * Lists published versions for a custom agent.
     */
    listCustomAgentVersions(agentIdOrSlug: string): Promise<CoderCustomAgentVersionListResponse>;
    /**
     * Lists saved skills in the caller's library.
     */
    listSavedSkills(): Promise<CoderSavedSkillListResponse>;
    /**
     * Saves a skill to the caller's library.
     */
    saveSkill(body: CoderSaveSkillRequest): Promise<CoderSavedSkill>;
    /**
     * Creates a custom SKILL.md-backed skill in the caller's library.
     */
    createCustomSkill(body: CoderCreateCustomSkillRequest): Promise<CoderSavedSkill>;
    /**
     * Deletes a saved skill from the caller's library.
     */
    deleteSavedSkill(skillId: string): Promise<void>;
    /**
     * Lists skill buckets.
     */
    listSkillBuckets(): Promise<CoderSkillBucketListResponse>;
    /**
     * Creates a skill bucket.
     */
    createSkillBucket(body: CoderCreateSkillBucketRequest): Promise<CoderSkillBucket>;
    /**
     * Deletes a skill bucket.
     */
    deleteSkillBucket(bucketId: string): Promise<void>;
    /**
     * Retrieves replay data for a session.
     */
    getReplay(sessionId: string, params?: Omit<CoderGetSessionReplayParams, 'sessionId' | 'orgId'>): Promise<CoderSessionReplay>;
    /**
     * Lists participants for a session.
     */
    listParticipants(sessionId: string, params?: Omit<CoderListParticipantsParams, 'sessionId' | 'orgId'>): Promise<CoderSessionParticipants>;
    /**
     * Lists historical events for a session.
     */
    listEventHistory(sessionId: string, params?: Omit<CoderListEventHistoryParams, 'sessionId' | 'orgId'>): Promise<CoderSessionEventHistory>;
    /**
     * Gets loop-mode state for a session.
     */
    getLoopState(sessionId: string, params?: Omit<CoderGetLoopStateParams, 'sessionId' | 'orgId'>): Promise<CoderLoopStateResponse>;
    /**
     * Lists known users in the coder hub.
     */
    listUsers(params?: Omit<CoderListUsersParamsWithOrg, 'orgId'>): Promise<CoderListUsersResponse>;
    /**
     * Lists GitHub accounts available via the caller's GitHub App installations.
     */
    listGitHubAccounts(): Promise<CoderGitHubAccountListResponse>;
    /**
     * Lists repositories accessible under a specific GitHub account.
     */
    listGitHubRepos(accountId: string): Promise<CoderGitHubRepositoryListResponse>;
}
//# sourceMappingURL=client.d.ts.map