/**
 * In-memory credential store for renter-provided credentials.
 *
 * Security design:
 * - Never persisted to disk (agentvault.json or any file)
 * - Scoped by room ID (each rental = one room)
 * - Auto-purges on process exit (SIGINT, SIGTERM, exit)
 * - Credential values stripped before any logging
 * - Nonce tracking for replay prevention
 */
export interface RenterCredential {
    key: string;
    value: string;
    type: string;
    scope: string;
    grantedAt: string;
    agreementId: string;
    roomId: string;
}
/** Redacted view of a credential (for logging / context without values). */
export interface CredentialInfo {
    key: string;
    type: string;
    scope: string;
    grantedAt: string;
}
export declare class CredentialStore {
    /** Map<roomId, Map<credentialKey, RenterCredential>> */
    private _store;
    /** Seen nonces for replay prevention — bounded per room */
    private _seenNonces;
    private static readonly MAX_NONCES_PER_ROOM;
    constructor();
    /**
     * Check if a nonce has been seen (replay prevention).
     * Returns true if the nonce is new (not a replay), false if seen before.
     */
    checkNonce(roomId: string, nonce: string): boolean;
    /** Store a credential for a room. */
    grant(roomId: string, credential: RenterCredential): void;
    /** Revoke a specific credential. */
    revoke(roomId: string, key: string): boolean;
    /** Revoke all credentials for a room. */
    revokeAll(roomId: string): void;
    /** Get a credential value. */
    get(roomId: string, key: string): RenterCredential | undefined;
    /** Get all credentials for a room (values included — only for agent context injection). */
    getAll(roomId: string): RenterCredential[];
    /** Get credential info without values (safe for logging). */
    getInfo(roomId: string): CredentialInfo[];
    /** Check if a specific credential exists. */
    has(roomId: string, key: string): boolean;
    /** Get credential count for a room. */
    count(roomId: string): number;
    /** Purge all credentials for a room (rental end). */
    purgeForRoom(roomId: string): void;
    /** Purge everything (process exit). */
    purgeAll(): void;
    /** Get a map of credential key → value for context injection. */
    getCredentialMap(roomId: string): Record<string, string>;
}
//# sourceMappingURL=credential-store.d.ts.map