// {{ display_name }} MCP server — generated by mcpify. Do not hand-edit.

/**
 * Fields vary by scheme (e.g. `authorizationHeader` for Basic/PAT/OAuth2,
 * `consumerKey`/`privateKey` for OAuth1, `apiKey` for API-key auth) — kept
 * as a flexible string map rather than a per-scheme type, since exactly one
 * strategy is active per deployment (REQ-1.2.3) and callers already know
 * which shape to expect from the strategy they're using.
 */
export type Credentials = Record<string, string>;

export type AuthConfig = Record<string, string | undefined>;

/**
 * One implementation per auth scheme discovered in the OpenAPI spec
 * (REQ-1.2.2). `refreshToken` is optional since not every scheme has a
 * refresh flow (only OAuth2 does in practice).
 */
export interface AuthStrategy {
  authenticate(config: AuthConfig): Promise<Credentials>;
  refreshToken?(credentials: Credentials): Promise<Credentials>;
  validateCredentials(credentials: Credentials): boolean;
}
