import type { FamilyOrganizationSummary } from 'gdc-common-utils-ts/utils/family-organization-summary'; import type { RouteContext } from './individual-onboarding.js'; import { type IndividualOrganizationStartResult } from './individual-start.js'; import { type FamilyOrganizationSearchInput } from './family-organization-search.js'; import type { PollOptions, SubmitAndPollResult } from './orchestration/client-port.js'; export type EnsureFamilyOrganizationRegistrationInput = FamilyOrganizationSearchInput & Readonly<{ controllerEmail?: string; controllerRole?: string; serviceProviderDid?: string; tenantId?: string; jurisdiction?: string; sector?: string; additionalClaims?: Record; }>; export type EnsureFamilyOrganizationRegistrationResult = Readonly<{ status: 'already_exists' | 'resume_required' | 'new_created'; summary?: FamilyOrganizationSummary; started?: IndividualOrganizationStartResult; }>; type EnsureFamilyOrganizationRegistrationDeps = { routeCtx: RouteContext; input: EnsureFamilyOrganizationRegistrationInput; defaultTimeoutMs?: number; defaultIntervalMs?: number; individualFamilyOrganizationSearchPath: (ctx: RouteContext) => string; individualFamilyOrganizationSearchPollPath: (ctx: RouteContext) => string; individualFamilyOrganizationBatchPath: (ctx: RouteContext) => string; individualFamilyOrganizationPollPath: (ctx: RouteContext) => string; submitAndPoll: (submitPath: string, pollPath: string, payload: { thid?: string; } & Record, options?: PollOptions) => Promise; }; /** * High-level controller orchestration for phone-first onboarding channels: * - first search whether the family/individual registration already exists * - if it exists, return the normalized summary * - otherwise start the bootstrap flow using the same business input */ export declare function ensureFamilyOrganizationRegistrationWithDeps(deps: EnsureFamilyOrganizationRegistrationDeps): Promise; export {};