export type JsonRecord = Record; export declare const AUTH_DIAGNOSTICS_REQUIREMENTS_VERSION: "pds-auth-readiness/v1"; export type AuthDiagnosticsWorkflow = "project-read" | "pipeline-run" | "release-video" | "distribution-publish"; export type AuthDiagnosticsVerdict = "ready" | "ready_with_warnings" | "not_ready" | "indeterminate"; export type AuthDiagnosticsAccessMode = "trusted_local" | "explicit" | "actor_projects" | "global"; export type AuthDiagnosticsCheckName = "credential" | "requirements_contract" | "workflow_scopes" | "gvs_approval" | "project_allowlist" | "project_membership" | "project_role" | "project_existence"; export type AuthDiagnosticsCheckStatus = "pass" | "fail" | "indeterminate" | "not_applicable"; export type AuthDiagnosticsCheckCode = "credential_valid" | "credential_missing" | "credential_invalid" | "credential_expired" | "credential_indeterminate" | "requirements_supported" | "requirements_unsupported" | "requirements_indeterminate" | "workflow_scopes_satisfied" | "workflow_scopes_missing" | "workflow_scopes_indeterminate" | "gvs_approval_satisfied" | "gvs_approval_missing" | "gvs_approval_indeterminate" | "gvs_approval_not_applicable" | "project_allowlist_satisfied" | "project_allowlist_mismatch" | "project_allowlist_not_applicable" | "project_membership_satisfied" | "project_membership_missing" | "project_membership_indeterminate" | "project_membership_not_applicable" | "project_role_satisfied" | "project_role_insufficient" | "project_role_indeterminate" | "project_role_not_applicable" | "project_exists" | "project_missing" | "project_existence_indeterminate" | "project_existence_not_disclosed"; export type AuthDiagnosticsWarningCode = "credential_near_expiry" | "global_project_wildcard" | "selected_project_differs_from_profile_default"; export type AuthDiagnosticsRemediationCode = "configure_credential" | "replace_credential" | "renew_credential" | "upgrade_requirements_contract" | "grant_workflow_scopes" | "request_gvs_access" | "select_allowed_project" | "grant_project_membership" | "grant_project_role" | "verify_project_id" | "retry_diagnostic"; export type AuthDiagnosticsRequest = { projectId: string; workflow: AuthDiagnosticsWorkflow; requirementsVersions: [typeof AUTH_DIAGNOSTICS_REQUIREMENTS_VERSION]; }; export type AuthDiagnosticsResult = { projectId: string; workflow: AuthDiagnosticsWorkflow; requirementsVersion: typeof AUTH_DIAGNOSTICS_REQUIREMENTS_VERSION | null; evaluatedAt: string | null; verdict: AuthDiagnosticsVerdict; accessMode: AuthDiagnosticsAccessMode | null; expiresAt: string | null; requiredScopes: string[]; missingScopes: string[]; minimumRole: "viewer" | "editor" | null; actualRole: "viewer" | "editor" | "owner" | null; checks: Array<{ check: AuthDiagnosticsCheckName; status: AuthDiagnosticsCheckStatus; code: AuthDiagnosticsCheckCode; }>; warnings: Array<{ code: AuthDiagnosticsWarningCode; }>; remediations: Array<{ code: AuthDiagnosticsRemediationCode; }>; }; export type AuthDoctorOutput = AuthDiagnosticsResult & { command: "auth.doctor"; profile: string; projectSource: "flag" | "env" | "profile"; }; export type AuthDoctorCommandOutcome = { kind: "auth_doctor"; exitCode: 0 | 10 | 11 | 12 | 21 | 61 | 70; payload: AuthDoctorOutput; }; export type CreateProjectRequest = { name: string; projectId?: string; template?: string; idempotencyKey?: string; }; export type ScriptGetRequest = { projectId: string; file?: string; }; export type ScriptSetRequest = { projectId: string; file?: string; content: string; idempotencyKey?: string; }; export type ScriptGenerateRequest = { projectId: string; source: unknown; prompt: string; idempotencyKey?: string; }; export type ArtifactDeleteRequest = { projectId: string; path: string; idempotencyKey?: string; }; export type PipelineRequest = { projectId: string; to?: string; stage?: string; mode?: string; sections?: string[]; files?: string[]; segments?: string[]; clips?: string[]; claudeModel?: string; compositionProviderCapacityMaxRetries?: number; storyboardMode?: "skip" | "review"; storyboardModel?: string; dryRun?: boolean; forceRegenerate?: boolean; /** Exact active narration child the caller has explicitly agreed to replace. */ confirmPreempt?: boolean; confirmPreemptJobId?: string; veoValidationRecoveryJobId?: string; validationOnly?: boolean; requireHostileReleaseHarness?: boolean; wait?: boolean; idempotencyKey?: string; }; export type StoryboardApprovalRequest = { projectId: string; runId: string; stageFingerprint: string; continuationGeneration: number; }; export type ResetPipelineRequest = { projectId: string; all?: true; from?: string; stage?: string; idempotencyKey?: string; }; export type PipelineStatusRequest = { projectId: string; requireHostileReleaseHarness?: boolean; hostileReleaseHarnessRunId?: string; }; export type PipelineStopRequest = { projectId: string; }; export type JobRequest = { jobId: string; currentState?: "concise"; onEvent?: (event: unknown) => void | Promise; signal?: AbortSignal; }; export type ActorProjectAllowlist = { kind: "actor_projects"; }; export type ProjectAllowlist = string[] | "*" | ActorProjectAllowlist; export type CreateTokenRequest = { label: string; scopes: string[]; projectIds: ProjectAllowlist; expiresAt: string; }; export type RotateTokenRequest = { tokenId: string; label?: string; scopes?: string[]; projectIds?: ProjectAllowlist; expiresAt?: string; idempotencyKey: string; }; export type DeviceLoginStartRequest = { scopes: string[]; projectIds: ProjectAllowlist; expiresAt: string; clientLabel?: string; }; export type DeviceLoginCompleteRequest = { deviceCode?: string; userCode?: string; action?: "approve" | "deny"; consentConfirmed?: boolean; }; export type DeviceLoginDescribeRequest = { userCode: string; }; export type RevokeTokenRequest = { tokenId: string; }; export type DistributionRequest = { projectId: string; platform?: string; currentState?: "concise"; mode?: string; privacy?: string; dryRun?: boolean; forceRegenerate?: boolean; noGenerate?: boolean; overrideAudit?: boolean; auditOverrideRationale?: string; requireHostileReleaseHarness?: boolean; wait?: boolean; idempotencyKey?: string; }; export type DistributionStatusRequest = Pick; export type DistributionConnectionListRequest = { projectId?: string; platform?: string; }; export type DistributionConnectionSelectRequest = { projectId: string; platform?: string; connectionId: string; }; export type DistributionThumbnailUploadRequest = { projectId: string; platform?: string; targetCandidateId?: string; rightsConfirmed?: boolean; replaceLive?: boolean; file: Blob; fileName?: string; idempotencyKey?: string; }; export type ReleaseVideoRequest = { projectName?: string; projectId?: string; script?: { content: string; fileName?: string; }; releaseNotes?: { content: string; fileName?: string; }; changelog?: { content: string; fileName?: string; }; repoUrl?: string; repoName?: string; gitSha?: string; releaseTag?: string; bootstrapSelectedProject?: boolean; preset?: string; target?: string; claudeModel?: string; storyboardMode?: "skip" | "review"; storyboardModel?: string; platform?: string; privacy?: string; forceRegenerate?: boolean; failedVeoRecoverySourceRunId?: string; failedVeoRecoveryJobId?: string; postCompositionsRecoverySourceRunId?: string; postCompositionsRecoveryJobId?: string; localExecutionBoundary?: boolean; requireHostileReleaseHarness?: boolean; metadataConflict?: "fail" | "use-existing" | "replace"; overrideAudit?: boolean; auditOverrideRationale?: string; auditFixLoop?: { enabled: true; maxPasses: number; maxAnnotationsPerPass: number; allowedFixTypes: ["remotion", "spec"]; requireApprovalForSourceChangingFixes: boolean; requireApprovalForHighCostFixes: true; maxSpendPddc: number; }; dryRun?: boolean; idempotencyKey?: string; wait?: boolean; }; export type ClientRequestOptions = { timeoutMs?: number | null; }; export type ReferenceLibraryListRequest = { projectId?: string; scope?: string; }; export type ReferenceLibraryItemsListRequest = { libraryId: string; projectId?: string; }; export type ReferenceLibraryCreateRequest = { projectId: string; label: string; slug?: string; libraryId?: string; idempotencyKey: string; }; export type ReferenceLibraryGrantListRequest = { projectId: string; libraryId: string; }; export type ReferenceLibraryGrantAddRequest = { projectId: string; libraryId: string; userId: string; permissions: string[]; expiresAt?: string; idempotencyKey: string; }; export type ReferenceLibraryGrantRevokeRequest = { projectId: string; libraryId: string; grantId: string; idempotencyKey: string; }; export type ReferenceLibraryProjectBindingsRequest = { projectId: string; }; export type ReferenceLibraryCapturePolicy = "off" | "private-draft"; export type ReferenceLibraryProjectPolicyRequest = { projectId: string; defaultCaptureLibraryId?: string; capturePolicy: ReferenceLibraryCapturePolicy; autoSelectFromLibrary?: boolean; autoAttachConfidence?: number; suggestConfidence?: number; idempotencyKey?: string; }; export type ReferenceLibraryProjectBindingAttachRequest = { projectId: string; libraryId: string; itemId: string; versionId?: string; bindingId?: string; target: JsonRecord; updatePolicy?: string; expectedReferenceFingerprint?: string; idempotencyKey?: string; }; export type ReferenceLibraryProjectBindingUpdateRequest = { projectId: string; bindingId: string; toVersionId?: string; dryRun?: boolean; idempotencyKey?: string; }; export type ReferenceLibraryProjectBindingDetachRequest = { projectId: string; bindingId: string; deleteMaterializedAssets?: boolean; idempotencyKey?: string; }; export type ReferenceLibraryProjectReferenceCaptureRequest = { projectId: string; referenceId: string; idempotencyKey?: string; }; export interface PdsClient { getVersion(): Promise; getAuthStatus(): Promise; getAuthDiagnostics(request: AuthDiagnosticsRequest): Promise; createProject(request: CreateProjectRequest): Promise; getProject(projectId: string): Promise; getScript(request: ScriptGetRequest): Promise; setScript(request: ScriptSetRequest): Promise; generateScript(request: ScriptGenerateRequest): Promise; listArtifacts(projectId: string): Promise; deleteArtifact(request: ArtifactDeleteRequest): Promise; planPipeline(request: PipelineRequest): Promise; runPipeline(request: PipelineRequest, options?: ClientRequestOptions): Promise; resetPipeline(request: ResetPipelineRequest): Promise; getPipelineStatus(request: PipelineStatusRequest): Promise; cancelPipelineWork(request: PipelineStopRequest): Promise; getJob(request: JobRequest): Promise; watchJob(request: JobRequest): Promise; cancelJob(request: JobRequest): Promise; approveStoryboardReview(request: StoryboardApprovalRequest): Promise; startDeviceLogin(request: DeviceLoginStartRequest): Promise; describeDeviceLoginSession(request: DeviceLoginDescribeRequest): Promise; completeDeviceLogin(request: DeviceLoginCompleteRequest): Promise; createToken(request: CreateTokenRequest): Promise; listTokens(): Promise; revokeToken(request: RevokeTokenRequest): Promise; rotateToken(request: RotateTokenRequest): Promise; generateDistribution(request: DistributionRequest): Promise; getDistributionStatus(request: DistributionStatusRequest): Promise; publishDistribution(request: DistributionRequest, options?: ClientRequestOptions): Promise; uploadDistributionThumbnail(request: DistributionThumbnailUploadRequest): Promise; listDistributionConnections(request: DistributionConnectionListRequest): Promise; selectDistributionConnection(request: DistributionConnectionSelectRequest): Promise; createReleaseVideo(request: ReleaseVideoRequest, options?: ClientRequestOptions): Promise; preflightReleaseVideo(request: ReleaseVideoRequest): Promise; listReferenceLibraries(request?: ReferenceLibraryListRequest): Promise; listReferenceLibraryItems(request: ReferenceLibraryItemsListRequest): Promise; createReferenceLibrary(request: ReferenceLibraryCreateRequest): Promise; listReferenceLibraryGrants(request: ReferenceLibraryGrantListRequest): Promise; addReferenceLibraryGrant(request: ReferenceLibraryGrantAddRequest): Promise; revokeReferenceLibraryGrant(request: ReferenceLibraryGrantRevokeRequest): Promise; listReferenceLibraryProjectBindings(request: ReferenceLibraryProjectBindingsRequest): Promise; getReferenceLibraryProjectPolicy(request: ReferenceLibraryProjectBindingsRequest): Promise; setReferenceLibraryProjectPolicy(request: ReferenceLibraryProjectPolicyRequest): Promise; attachReferenceLibraryProjectBinding(request: ReferenceLibraryProjectBindingAttachRequest): Promise; updateReferenceLibraryProjectBinding(request: ReferenceLibraryProjectBindingUpdateRequest): Promise; detachReferenceLibraryProjectBinding(request: ReferenceLibraryProjectBindingDetachRequest): Promise; captureReferenceLibraryProjectReference(request: ReferenceLibraryProjectReferenceCaptureRequest): Promise; publishCapturedReferenceLibraryProjectReference(request: ReferenceLibraryProjectReferenceCaptureRequest): Promise; }