import * as _oidfed_core from '@oidfed/core'; import { EntityId, TrustAnchorSet, FederationOptions, EntityStatementMetadata, FederationKeyProvider, EntityRole, TrustMarkRef } from '@oidfed/core'; export { DiscoveryResult } from '@oidfed/core'; interface LeafConfig { entityId: EntityId | string; authorityHints: readonly (EntityId | string)[]; metadata: EntityStatementMetadata; keyProvider: FederationKeyProvider; roles?: EntityRole[]; options?: FederationOptions; trustMarks?: TrustMarkRef[]; trustAnchorHints?: readonly (EntityId | string)[]; entityConfigurationTtlSeconds?: number; trustAnchors?: TrustAnchorSet; } declare class Leaf { static discoverEntity(targetEntityId: EntityId | string, trustAnchors: TrustAnchorSet, options?: FederationOptions): Promise<_oidfed_core.Result<_oidfed_core.DiscoveryResult, _oidfed_core.FederationError>>; readonly entityId: EntityId; private readonly routes; private readonly config; private readonly metadata; private cachedJwt; private cachedExp; private inflight; constructor(config: LeafConfig); private buildEntityConfiguration; getEntityConfiguration(): Promise; isEntityConfigurationExpired(): boolean; refreshEntityConfiguration(): Promise; handleRequest(request: Request): Promise; } export { Leaf, type LeafConfig };