import { Observable } from 'rxjs'; export interface IAMProviderInterface { } export interface IAMUserProviderInterface { find(query?: Record): Observable; findById(id: string): Observable; create(user: T): Observable; update(id: string, user: T): Observable; delete(id: string): Observable; } export interface IAMGroupProviderInterface { find(query?: Record): Observable; findByUser(userId: string): Observable; assignToUser(userId: string, groupId: string): Observable; removeUser(userId: string, groupId: string): Observable; } export interface IAMClientProviderInterface { find(query?: Record): Observable; create(client: Record): Observable; delete(id: string): Observable; } export interface OAuth2ParamsInterface { baseUrl: string; wellKnownPath: string; grantType: 'client_credentials' | 'password'; clientId: string; clientSecret: string; scope?: string; username?: string; password?: string; adminPath?: string; } export interface IAMProviderParamsInterface { getParams(): OAuth2ParamsInterface; getUrl(): URL; getData(): URLSearchParams; } export type Token = { access_token: string; expires_in: number; token_type: string; scope: string; refresh_token?: string; }; export type WellKnown = { issuer: string; token_endpoint: string; jwks_uri: string; }; export type WellKnownOptions = { timeout?: number; skipCache?: boolean; }; export type GenerateTokenOptions = { key?: string; timeout?: number; skipCache?: boolean; }; //# sourceMappingURL=iam-provider.interface.d.ts.map