import { Provider } from './provider.js'; import { Oauth2WrappedConfig, Oauth2Token } from './oauth2.js'; import 'hono'; import '../storage/storage.js'; interface KeycloakConfig extends Oauth2WrappedConfig { /** * The base URL of the Keycloak server. * * @example * ```ts * { * baseUrl: "https://your-keycloak-domain" * } * ``` */ baseUrl: string; /** * The realm in the Keycloak server to authenticate against. * * A realm in Keycloak is like a tenant or namespace that manages a set of * users, credentials, roles, and groups. * * @example * ```ts * { * realm: "your-realm" * } * ``` */ realm: string; } /** * Create a Keycloak OAuth2 provider. * * @param config - The config for the provider. * @example * ```ts * KeycloakProvider({ * baseUrl: "https://your-keycloak-domain", * realm: "your-realm", * clientID: "1234567890", * clientSecret: "0987654321" * }) * ``` */ declare function KeycloakProvider(config: KeycloakConfig): Provider<{ tokenset: Oauth2Token; clientID: string; }>; export { type KeycloakConfig, KeycloakProvider };