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

//#region src/credential-stores/composio-store.d.ts

/**
 * Composio credential store.
 *
 * Composio handles OAuth/auth internally via MCP URL query params.
 * The connected account ID is stored in the credential reference's
 * retrievalParams and injected into the URL at runtime.
 *
 * The key passed to get/has/delete is the Composio connected_account_id.
 */
declare class ComposioCredentialStore implements CredentialStore {
  readonly id: string;
  readonly type: "composio";
  constructor(id: string);
  get(): Promise<string | null>;
  set(): Promise<void>;
  has(key: string): Promise<boolean>;
  delete(key: string): Promise<boolean>;
  checkAvailability(): Promise<{
    available: boolean;
    reason?: string;
  }>;
}
//#endregion
export { ComposioCredentialStore };