import type { AgentProvider, AttemptRepository, ProviderObservation, ReconcileRequest } from "@awp/application";
import { type AgentRunId, type AttemptId, type ProviderDescriptor, type ProviderError, type ProviderId, type ProviderOperationContext, type ProviderResult, type TaskId, type WorkspaceId } from "@awp/contracts";
export declare const ACP_PROVIDER_ID: ProviderId;
export declare const ACP_SOURCE_PROOF: Readonly<{
    readonly repository: "agentclientprotocol/typescript-sdk";
    readonly npmPackage: "@agentclientprotocol/sdk";
    readonly reviewedAt: "2026-08-22";
    readonly stableProtocol: "v1";
    readonly sourceRevision: "e6463f444093ed7c5f1cc937c3f32afb5853e906";
    readonly stableSdkVersion: "1.4.0";
    readonly stableSdkTagRevision: "e6463f444093ed7c5f1cc937c3f32afb5853e906";
    readonly codexAdapterRepository: "agentclientprotocol/codex-acp";
    readonly codexAdapterPackage: "@agentclientprotocol/codex-acp";
    readonly codexAdapterVersion: "1.6.2";
    readonly codexAdapterRevision: "ba5bcc3d7759250dde9d4d2286a1bec11b363208";
    readonly experimentalV2: false;
    readonly adapterVersion: "awp-i1-acp-v1-2026-08-22";
}>;
export type AcpNativeSessionStatus = "starting" | "running" | "waiting" | "checkpointing" | "completed" | "failed" | "cancelling" | "cancelled";
export interface AcpNativeCapabilities {
    readonly protocolVersion: string;
    readonly agentName: string;
    readonly capabilities: readonly string[];
}
export interface AcpNativeSession {
    readonly id: string;
    readonly attemptId: string;
    readonly agentRunId: string;
    readonly taskId: string;
    readonly workspaceId: string;
    readonly providerId: string;
    readonly accountId: string;
    readonly model: string;
    readonly status: AcpNativeSessionStatus;
    readonly protocolVersion: string;
    readonly agentName: string;
    readonly capabilities: readonly string[];
    readonly failureKind?: "protocol" | "agent" | "permission" | "cancelled" | "transport";
    readonly recoverable?: boolean;
}
export type AcpAttemptSelectionKind = "initial" | "retry" | "fallback";
export declare const ACP_FAILURE_INJECTIONS: readonly ["dogfood-post-prompt-failure-17"];
export type AcpFailureInjection = (typeof ACP_FAILURE_INJECTIONS)[number];
export interface AcpNativeClient {
    capabilities(): Promise<AcpNativeCapabilities>;
    findSessionByIdempotencyKey(workspaceId: string, idempotencyKey: string): Promise<AcpNativeSession | undefined>;
    startSession(input: {
        readonly attemptId: string;
        readonly agentRunId: string;
        readonly taskId: string;
        readonly workspaceId: string;
        readonly providerId: string;
        readonly accountId: string;
        readonly model: string;
        readonly idempotencyKey: string;
        readonly correlationId: string;
        readonly selectionKind?: AcpAttemptSelectionKind;
        readonly failureInjection?: AcpFailureInjection;
    }): Promise<AcpNativeSession>;
    cancelSession(nativeSessionId: string): Promise<AcpNativeSession>;
    getSession(nativeSessionId: string): Promise<AcpNativeSession | undefined>;
}
export declare class AcpAdapterError extends Error {
    readonly providerError: ProviderError;
    constructor(providerError: ProviderError, options?: ErrorOptions);
}
export declare class AcpAgentProvider implements AgentProvider {
    private readonly client;
    private readonly attempts;
    constructor(client: AcpNativeClient, attempts: AttemptRepository);
    describe(): Promise<ProviderDescriptor>;
    startAttempt(context: ProviderOperationContext, attemptId: AttemptId, agentRunId: AgentRunId, taskId: TaskId, workspaceId: WorkspaceId): Promise<ProviderResult<ProviderObservation>>;
    cancelAttempt(context: ProviderOperationContext, attemptId: AttemptId): Promise<ProviderResult<ProviderObservation>>;
    cancelNativeSession(nativeSessionId: string): Promise<ProviderResult<ProviderObservation>>;
    reconcile(request: ReconcileRequest): Promise<ProviderResult<ProviderObservation>>;
}
//# sourceMappingURL=index.d.ts.map