import { CredentialStore } from "../types/server.js";

//#region src/credential-stores/CredentialStoreRegistry.d.ts

/**
 * Registry for managing credential stores in the application context
 * Provides methods to register, retrieve, and manage credential stores
 */
declare class CredentialStoreRegistry {
  private stores;
  private logger;
  constructor(initialStores?: CredentialStore[]);
  /**
   * Add a credential store to the registry
   */
  add(store: CredentialStore): void;
  /**
   * Get a credential store by ID
   */
  get(id: string): CredentialStore | undefined;
  /**
   * Get all registered credential stores
   */
  getAll(): CredentialStore[];
  /**
   * Get all credential store IDs
   */
  getIds(): string[];
  /**
   * Check if a credential store is registered
   */
  has(id: string): boolean;
  /**
   * Remove a credential store
   */
  remove(id: string): boolean;
  /**
   * Get the number of registered stores
   */
  size(): number;
}
//#endregion
export { CredentialStoreRegistry };