
//#region \0dts:/home/runner/work/svoauth/svoauth/src/types/index.d.ts
type Scopes = {
	values: string[]
	delimiter?: " " | "," | ":"
};
interface OAuthClient {
	clientId: string;
	clientSecret: string;
	authorizeUrl: string;
	tokenUrl: string;
	revokeTokenUrl?: string;
	refreshTokenUrl?: string;
	redirectUri: string;
	pkce?: boolean;
	basicAuth?: boolean;
	scopes: Scopes;
	params?: Record<string, string>[];
}
interface Tokens {
	hasAccessToken(): boolean;
	hasRefreshToken(): boolean;
	accessToken(): string;
	refreshToken(): string;
	expiresAt(): Date | undefined;
	refreshToken(): string;
	idToken(): string;
}
type OAuthConfigs = Record<string, OAuthClient>;

//#endregion
export { OAuthConfigs, Tokens };