export type CredentialManagerErrorCode = "ambiguous_project_binding" | "invalid_description" | "invalid_profile" | "invalid_project_identity" | "invalid_provider_record" | "invalid_session_key" | "owner_setup_required" | "profile_exists" | "profile_not_found" | "project_not_bound"; export declare class CredentialManagerError extends Error { readonly code: CredentialManagerErrorCode; constructor(code: CredentialManagerErrorCode, message: string); } export type CredentialStorageErrorCode = "malformed_provider_data" | "not_connected" | "profile_not_found" | "provider_command_failed" | "provider_unavailable"; export declare class CredentialStorageError extends Error { readonly code: CredentialStorageErrorCode; constructor(code: CredentialStorageErrorCode, message: string); } export interface CredentialProjectIdentity { key: string; root: string; label: string; portable: boolean; } export type CredentialProjectResolver = (cwd: string) => Promise; export interface CredentialVariable { name: string; value: string; } export interface CredentialProfileRecord { profile: string; description?: string; variables: CredentialVariable[]; projectKeys: string[]; } export interface StoredCredentialProfileSummary { profile: string; description?: string; variableNames: string[]; projectKeys: string[]; } export type CredentialStorageProvider = "bitwarden_password_manager" | "bitwarden_secrets_manager"; export interface MachineCredentialSession { provider: CredentialStorageProvider; sessionKey: string; } export type MachineCredentialSessionResolver = (signal?: AbortSignal) => Promise; export interface CredentialProfileStorage { connect(sessionKey: string, signal?: AbortSignal, provider?: CredentialStorageProvider): Promise; refresh?(signal?: AbortSignal): Promise; listProfiles(signal?: AbortSignal): Promise; readProfile(profile: string, signal?: AbortSignal): Promise; writeProfile(record: CredentialProfileRecord, signal?: AbortSignal): Promise; deleteProfile(profile: string, signal?: AbortSignal): Promise; lock(): void; } export interface CredentialProfileSummary { profile: string; description?: string; variableNames: string[]; boundToCurrentProject: boolean; } export interface CredentialActivationResult { status: "activated"; profile: string; variableNames: string[]; project: string; } export interface CredentialMutationResult { status: "bound" | "removed" | "stored"; profile: string; variableNames: string[]; project?: string; portable?: boolean; } export interface CredentialConnectionStatus { connected: boolean; sessionAvailable: boolean; } export interface CredentialManagerOptions { storage: CredentialProfileStorage; resolveProject: CredentialProjectResolver; initialSessionKey?: string; resolveMachineSession?: MachineCredentialSessionResolver; onEnvironmentChanged?: () => void; } export declare function validateCredentialProfileName(profile: string): string; export declare function validateCredentialDescription(description: string | undefined): string | undefined; export declare function validateCredentialProfileRecord(record: CredentialProfileRecord): CredentialProfileRecord; export declare class CredentialManager { private readonly storage; private readonly resolveProject; private readonly resolveMachineSession; private readonly onEnvironmentChanged; private readonly activeEnvironments; private readonly sensitiveValues; private pendingSessionKey; private pendingStorageProvider; private sessionKeyForRedaction; private connectionPromise; private connectionGeneration; private connected; constructor(options: CredentialManagerOptions); get status(): CredentialConnectionStatus; connect(sessionKey: string, signal?: AbortSignal): Promise; ensureAvailable(signal?: AbortSignal): Promise; listForProject(cwd: string, signal?: AbortSignal): Promise; activateForProject(cwd: string, profile?: string, signal?: AbortSignal): Promise; storeForProject(cwd: string, input: { profile: string; description?: string; dotenv: string; }, signal?: AbortSignal): Promise; prepareForMigration(cwd: string, input: { profile: string; replaceExisting?: boolean; }, signal?: AbortSignal): Promise; storeVariablesForProject(cwd: string, input: { profile: string; description?: string; variables: CredentialVariable[]; replaceExisting?: boolean; }, signal?: AbortSignal): Promise; bindProfileToProject(cwd: string, profile: string, signal?: AbortSignal): Promise; removeProfile(profile: string, signal?: AbortSignal): Promise; getEnvironmentForCwd(cwd: string): Record | undefined; private findActiveEnvironment; hasEnvironmentForCwd(cwd: string): boolean; redactSensitiveText(text: string): string; lock(): void; private ensureConnected; private assertAccessGeneration; private refreshProjectProfiles; private activate; private rebuildSensitiveValues; } //# sourceMappingURL=credential-manager.d.ts.map