export declare const WORKSPACE_EFFECT_SCHEMA_VERSION = "onboard-client-workspace-effect-v1"; export type WorkspaceEffectStatus = "reserved" | "uncertain" | "reconciled" | "blocked"; export interface WorkspaceEffectState { schemaVersion: typeof WORKSPACE_EFFECT_SCHEMA_VERSION; effectIdentity: string; revision: number; status: WorkspaceEffectStatus; requestFingerprint: string; remoteCorrelation: string | null; workspaceId: string | null; blockerCode: string | null; externalEffectIntent: WorkspaceExternalEffectIntent | null; } interface WorkspaceExternalEffectIntent { schemaVersion: "onboard-client-workspace-external-effect-intent-v1"; effectIdentity: string; requestFingerprint: string; idempotencyKey: string; } export type WorkspaceEffectReducerEvent = { type: "reserve"; effectIdentity: string; requestFingerprint: string; } | { type: "mark_uncertain"; expectedRevision: number; } | { type: "reconcile"; expectedRevision: number; remoteCorrelation: string; workspaceId: string; } | { type: "block"; expectedRevision: number; code: string; }; export declare function reduceWorkspaceEffect(current: WorkspaceEffectState | null, event: WorkspaceEffectReducerEvent): WorkspaceEffectState; export interface WorkspaceEffectRequest { runId: string; packetRevision: number; packetHash: string; operation: "workspace_create"; targetIdentity: { customerSlug: string; workspaceName: string; }; preconditions: { associationFingerprint: string; internalTeamSnapshotHash: string; }; } export interface WorkspaceEffectReadbackInput { action: "workspace_effect_readback"; fixtureId?: string; mode?: "create" | "reconcile"; request?: WorkspaceEffectRequest; } export interface WorkspaceEffectCallbackInput { effectIdentity: string; idempotencyKey: string; requestFingerprint: string; targetIdentity: WorkspaceEffectRequest["targetIdentity"]; } export interface WorkspaceEffectRemoteResource { workspaceId: string; workspaceName: string; remoteCorrelation: string; } export interface WorkspaceEffectReadbackResponse { matches: WorkspaceEffectRemoteResource[]; } export interface WorkspaceEffectReadbackOptions { adminHome: string; adminStatePath?: string; createCallback?: (input: WorkspaceEffectCallbackInput) => Promise; readbackCallback?: (input: WorkspaceEffectCallbackInput) => Promise; afterCreateReceipt?: (input: WorkspaceEffectRemoteResource & WorkspaceEffectCallbackInput) => void; beforeCompletion?: (input: WorkspaceEffectRemoteResource & WorkspaceEffectCallbackInput) => void; beforeExternalEffect?: (input: WorkspaceEffectCallbackInput) => void; } export type WorkspaceEffectErrorCode = "workspace_effect_not_configured" | "workspace_effect_input_invalid" | "workspace_effect_state_insecure" | "workspace_effect_state_corrupt" | "workspace_effect_request_drift" | "workspace_effect_in_progress" | "workspace_effect_create_callback_unavailable" | "workspace_effect_readback_callback_unavailable" | "workspace_effect_remote_uncertain" | "workspace_effect_not_found" | "workspace_effect_ambiguous" | "workspace_effect_correlation_mismatch" | "workspace_effect_target_mismatch" | "workspace_effect_name_collision" | "workspace_effect_stale_revision"; interface WorkspaceEffectResultBase { action: "workspace_effect_readback"; fixtureId: string | null; effectIdentity: string | null; requestFingerprint: string | null; revision: number | null; remoteCorrelation: string | null; workspaceId: string | null; registrationReceiptHash: string | null; callbackInvoked: boolean; callbackKind: "create" | "readback" | null; writeAttempted: boolean; replayed: boolean; } export interface WorkspaceEffectReceiptResult extends WorkspaceEffectResultBase { ok: true; kind: "workspace_effect_receipt"; status: "reconciled"; effectIdentity: string; requestFingerprint: string; revision: number; remoteCorrelation: string; workspaceId: string; registrationReceiptHash: string; } export interface WorkspaceEffectUncertainResult extends WorkspaceEffectResultBase { ok: false; kind: "workspace_effect_uncertain"; code: "workspace_effect_remote_uncertain"; status: "uncertain"; effectIdentity: string; requestFingerprint: string; revision: number; } export interface WorkspaceEffectBlockedResult extends WorkspaceEffectResultBase { ok: false; kind: "workspace_effect_blocked"; code: WorkspaceEffectErrorCode; status: "blocked" | "reserved" | "uncertain"; } export type WorkspaceEffectCommandResult = WorkspaceEffectReceiptResult | WorkspaceEffectUncertainResult | WorkspaceEffectBlockedResult; export declare function adminOnboardClientWorkspaceEffect(input: WorkspaceEffectReadbackInput, options: WorkspaceEffectReadbackOptions): Promise; export {};