import { Logger } from '@n8n/backend-common'; import type { User } from '@n8n/db'; export interface ProtectedResource { id: string; displayName?: string; getResourceUrl(): string; getResourceUrls?(): string[]; getAudiences(): string[]; scopes: string[]; getScopeTools?(): Record; isDefault?: boolean; getAllowedRedirectUris?(): Promise; authorize(user: User): Promise; } export interface ProtectedResourceResolver { readonly id: string; readonly scopes: string[]; resolveByUrl(resourceUrl: string): Promise; resolveByPath(pathname: string): Promise; } export declare class ProtectedResourceRegistry { private readonly logger; private readonly resources; private readonly resolvers; constructor(logger: Logger); register(resource: ProtectedResource): void; registerResolver(resolver: ProtectedResourceResolver): void; getById(id: string): ProtectedResource | undefined; getByResourceUrl(resourceUrl: string): Promise; getByResourcePath(pathname: string): Promise; private logResolverFailure; getAll(): ProtectedResource[]; getDefaultResource(): ProtectedResource | undefined; getAllAudiences(): string[]; getAllScopes(): string[]; }