import type { SubmitAndPollResult } from 'gdc-sdk-core-ts'; import type { RouteContext } from './individual-onboarding.js'; /** Verified contact extracted by the BFF from a signed OpenID `id_token`. */ export type AuthorizedSubjectVerifiedContact = Readonly<{ email?: string; telephone?: string; }>; /** * High-level input for listing subject grants already accepted by an * individual index. The contact locates grants; it is not role or action proof. */ export type AuthorizedIndividualSubjectDirectoryInput = Readonly<{ verifiedContact: AuthorizedSubjectVerifiedContact; requestThid?: string; pollOptions?: Readonly<{ timeoutMs?: number; intervalMs?: number; }>; }>; /** One exact subject projection paired with its accepted grant metadata. */ export type AuthorizedIndividualSubject = Readonly<{ subjectDid: string; /** Opaque provider resource id required for exact lifecycle operations. */ organizationId?: string; role?: string; /** Accepted provider grant claims; descriptive metadata, never action authority. */ grantClaims: Readonly>; authorizationEvidenceId?: string; /** Governed RelatedPerson identifier used as this subject relationship's attester. */ relatedPersonId?: string; issuerDid?: string; subjectClaims: Readonly>; }>; type DirectoryDeps = Readonly<{ individualLicenseSearchPath: (ctx: RouteContext) => string; individualLicenseSearchPollPath: (ctx: RouteContext) => string; individualOrganizationSearchPath: (ctx: RouteContext) => string; individualOrganizationSearchPollPath: (ctx: RouteContext) => string; submitAndPoll: (submitPath: string, pollPath: string, payload: { thid?: string; } & Record, pollOptions?: { timeoutMs?: number; intervalMs?: number; }) => Promise; }>; /** * Lists already-authorized individual subjects without exposing GW plumbing. * * The caller supplies a verified contact taken from a signed OpenID token. * That account/contact proof is intentionally insufficient for protected * actions: professional role proof remains a separate `vp_token`, and SMART * access remains bound to a registered wallet/device session. */ export declare function listAuthorizedIndividualSubjectsWithDeps(routeContext: RouteContext, input: AuthorizedIndividualSubjectDirectoryInput, deps: DirectoryDeps): Promise; export {};