import type { H3Event } from "h3"; import { type IconValue } from "../icons/index.js"; import type { OrgRole } from "./types.js"; export interface FederatedOrganizationIdentity { authority: string; id: string; name: string; role: OrgRole; email: string; icon?: IconValue | null; iconRevision?: number; } export type FederatedOrganizationSyncInput = Omit; export declare class FederatedIconConflictError extends Error { readonly icon: IconValue | null; readonly iconRevision: number; constructor(icon: IconValue | null, iconRevision: number); } export type FederatedOrganizationProvisionResult = "disabled" | "created" | "linked" | "unlinked"; type FederatedMemberRole = Exclude; export type FederatedMembershipValidation = { active: true; role: OrgRole; } | { active: false; role: null; }; export declare function addFederatedOrganizationMember(event: H3Event, input: { orgId: string; actorEmail: string; actorRole: OrgRole; memberEmail: string; memberRole: FederatedMemberRole; }): Promise; export declare function updateFederatedOrganizationMemberRole(event: H3Event, input: { orgId: string; actorEmail: string; actorRole: OrgRole; memberEmail: string; memberRole: FederatedMemberRole; }): Promise; export declare function revokeFederatedOrganizationMember(event: H3Event, input: { orgId: string; actorEmail: string; actorRole: OrgRole; memberEmail: string; }): Promise; export declare function validateFederatedOrganizationMembership(event: H3Event | undefined, input: { orgId: string; email: string; }): Promise; export declare function validateFederatedOrganizationMembershipForCurrentRequest(input: { orgId: string; email: string; }, event?: H3Event): Promise; export declare function syncOrganizationToIdentityHub(event: H3Event, input: FederatedOrganizationSyncInput): Promise; export declare function provisionFederatedOrganization(identity: FederatedOrganizationIdentity, options?: { /** The signing-in caller's request; see `setActiveOrgId`. */ event?: H3Event; }): Promise; export {};