import { BaseLogger } from '@credo-ts/core'; import { VeranaChainService } from './VeranaChainService'; import { CachedVsOperatorAuthorizationRecord } from './types'; export interface AuthorizationServiceConfig { chain: VeranaChainService; logger: BaseLogger; corporationId?: number; minRefreshIntervalMs?: number; } /** VS operator authorization records cached for the admin API (https://github.com/verana-labs/vs-agent/issues/472); operator authorizations are queried on demand. */ export declare class AuthorizationService { private vsoaByParticipant; private lastRefreshAt; private readonly chain; private readonly logger; private readonly corporationId?; private readonly minRefreshIntervalMs; constructor(config: AuthorizationServiceConfig); private inScope; refreshForOperator(): Promise; invalidateParticipant(participantId: number): void; canSign(participantId: number, msgType: string): boolean; getVsOperatorAuthorizationRecord(participantId: number): CachedVsOperatorAuthorizationRecord | undefined; listVsOperatorAuthorizationRecords(): CachedVsOperatorAuthorizationRecord[]; hasFeegrant(participantId: number): boolean; agentHoldsOperatorGrant(msgType: string): Promise; callerHoldsOperatorGrant(account: string, msgType: string): Promise; callerHoldsAnyVsOperatorGrant(account: string, msgType: string): Promise; callerHoldsVsOperatorGrant(account: string, participantId: number, msgType: string): Promise; }