export type PrincipalClass = 'owner' | 'member' | 'external'; export type AdmissionLane = 'owner' | 'public' | 'divert'; export interface PrincipalContext { readonly class: PrincipalClass; readonly lane: AdmissionLane; readonly canonicalId: string; readonly principalId?: string; readonly consoleEligible: boolean; } export interface TelegramPrincipalInput { readonly userId: string; readonly chatId: string; readonly chatType: string; readonly allowedChats: ReadonlySet; readonly ownerUserIds?: ReadonlySet; } export interface ConnectorPrincipalInput { readonly connector: string; readonly namespace: string; readonly userId: string; readonly ownerUserId?: string; readonly isDirectMessage: boolean; } export declare function overlayMemberPrincipal(base: PrincipalContext, row: { principalId: string; kind: 'owner' | 'member'; status: string; } | null): PrincipalContext; export declare function deriveTelegramOwnerId(telegram: { readonly owner_user_ids?: readonly string[]; readonly allowed_chats?: readonly string[]; }): string | null; export declare function resolveTelegramPrincipal(input: TelegramPrincipalInput): PrincipalContext; export declare function resolveConnectorPrincipal(input: ConnectorPrincipalInput): PrincipalContext; export declare function makeHostPrincipal(source: string): PrincipalContext; export declare function laneChannelId(channelId: string, lane: AdmissionLane): string; //# sourceMappingURL=principal.d.ts.map