import type { Role, SkillVisibility } from '@teachagenthub/contracts';
export interface RepoAccessContext {
    tenantId: string;
    userId: string;
    userRole: Role;
    requestedVisibility?: SkillVisibility;
}
export declare function resolveRepoAccessContext(input: {
    authorization?: string;
    tenantIdHeader?: string;
    userIdHeader?: string;
    userRoleHeader?: string;
    requestedVisibility?: SkillVisibility;
}): RepoAccessContext;
export declare function canReadVisibility(viewerTenantId: string, visibility: SkillVisibility | undefined, ownerTenantId: string, ownerId: string | undefined, userId: string, role: Role): boolean;
export declare function assertPublishPolicy(ctx: RepoAccessContext, targetTenantId: string, visibility: SkillVisibility): void;
