import type { CredentialDescription, CredentialPort, CredentialSource, JiraCredentials } from "../../ports/credentials.port.js"; import { type CredentialValueSource } from "./process-env.js"; type NamedSource = { name: Exclude; source: CredentialValueSource; }; /** * Merges credential values field-by-field across sources, in priority order: * the current process's own environment, then this user's OS secret store, * then the Windows User environment. * * process.env stays first so a per-session override still behaves as expected, * and so CI keeps working unchanged. The secret store comes next because it is * the only source an editor launched from a Dock or Start menu can reach - such * a process never sourced a shell profile. The Windows User environment stays * last: a team member who only ever `setx`'d their token still boots without a * fresh terminal. * * Merging is per field, so a single exported variable can shadow one field of a * stored credential and leave the rest - `describe()` reports that as "mixed". */ export declare class CompositeCredentialProvider implements CredentialPort { private readonly sources; private cached?; constructor(sources?: NamedSource[]); private resolve; load(): JiraCredentials; describe(): CredentialDescription; } export {};