/**
 * Branded ID types for domain entities.
 *
 * Prevents mixing up IDs across domain boundaries — e.g., you can't
 * accidentally pass an EventInstanceId where a ProductId is expected.
 *
 * Usage:
 *   const instanceId = asEventInstanceId('abc-123')
 *   const productId = asProductId('def-456')
 *   // instanceId cannot be assigned to productId — compile error
 */
declare const __brand: unique symbol;
export type Brand<T, B extends string> = T & {
    readonly [__brand]: B;
};
export type EventInstanceId = Brand<string, 'EventInstanceId'>;
export type SiteId = Brand<string, 'SiteId'>;
export type OccurrenceId = Brand<string, 'OccurrenceId'>;
export type EventSeriesId = Brand<string, 'EventSeriesId'>;
export type TicketTypeId = Brand<string, 'TicketTypeId'>;
export type EventCategoryId = Brand<string, 'EventCategoryId'>;
export type VenueId = Brand<string, 'VenueId'>;
export type PricingOptionId = Brand<string, 'PricingOptionId'>;
export type MoneyDateString = Brand<string, 'MoneyDateString'>;
export type StripeCheckoutSessionId = Brand<string, 'StripeCheckoutSessionId'>;
export type ProductId = Brand<string, 'ProductId'>;
export type ProductVariantId = Brand<string, 'ProductVariantId'>;
export type ProductCategoryId = Brand<string, 'ProductCategoryId'>;
export type MediaAssetId = Brand<string, 'MediaAssetId'>;
export type UploadSessionId = Brand<string, 'UploadSessionId'>;
export type StorageBucketName = Brand<string, 'StorageBucketName'>;
export type StoragePath = Brand<string, 'StoragePath'>;
export type RelativeStoragePath = Brand<string, 'RelativeStoragePath'>;
export type SiteScopedStoragePath = Brand<string, 'SiteScopedStoragePath'>;
export type FileChecksumSha256 = Brand<string, 'FileChecksumSha256'>;
export type DetectedMimeType = Brand<string, 'DetectedMimeType'>;
export type DeclaredMimeType = Brand<string, 'DeclaredMimeType'>;
export type OriginalFilename = Brand<string, 'OriginalFilename'>;
export type SafeDownloadFilename = Brand<string, 'SafeDownloadFilename'>;
export type PositiveByteCount = Brand<number, 'PositiveByteCount'>;
export type PositiveSeconds = Brand<number, 'PositiveSeconds'>;
export type BookingSessionId = Brand<string, 'BookingSessionId'>;
export type EntitlementId = Brand<string, 'EntitlementId'>;
export type SiteFontId = Brand<string, 'SiteFontId'>;
export type UserId = Brand<string, 'UserId'>;
export type FormId = Brand<string, 'FormId'>;
export type FormSubmissionId = Brand<string, 'FormSubmissionId'>;
export type PassId = Brand<string, 'PassId'>;
export type MembershipId = Brand<string, 'MembershipId'>;
export type CourseId = Brand<string, 'CourseId'>;
export type CustomerId = Brand<string, 'CustomerId'>;
export type OrderId = Brand<string, 'OrderId'>;
export type OrderItemId = Brand<string, 'OrderItemId'>;
export type CheckoutLineId = Brand<string, 'CheckoutLineId'>;
export type AttendeeId = Brand<string, 'AttendeeId'>;
export type CustomerPassId = Brand<string, 'CustomerPassId'>;
export type CustomerMembershipId = Brand<string, 'CustomerMembershipId'>;
export type EnrollmentId = Brand<string, 'EnrollmentId'>;
export type AppointmentId = Brand<string, 'AppointmentId'>;
export type AppointmentServiceId = Brand<string, 'AppointmentServiceId'>;
export type AppointmentResourceId = Brand<string, 'AppointmentResourceId'>;
export type StaffMemberId = Brand<string, 'StaffMemberId'>;
export type BookingCalendarFeedTokenId = Brand<string, 'BookingCalendarFeedTokenId'>;
export type BookingCalendarFeedTokenPublicId = Brand<string, 'BookingCalendarFeedTokenPublicId'>;
export type BookingCalendarFeedTokenSecret = Brand<string, 'BookingCalendarFeedTokenSecret'>;
export type BookingCalendarFeedTokenSecretHash = Brand<string, 'BookingCalendarFeedTokenSecretHash'>;
export type ContentEntryId = Brand<string, 'ContentEntryId'>;
export type StripeInvoiceId = Brand<string, 'StripeInvoiceId'>;
export type NewsletterSubscriberId = Brand<string, 'NewsletterSubscriberId'>;
export type EmailAuditRowId = Brand<string, 'EmailAuditRowId'>;
export type WaitlistEntryId = Brand<string, 'WaitlistEntryId'>;
export type WaitlistHoldId = Brand<string, 'WaitlistHoldId'>;
export type ShipmentId = Brand<string, 'ShipmentId'>;
export type ActivityLogEntryId = Brand<string, 'ActivityLogEntryId'>;
export type GiftingOfferId = Brand<string, 'GiftingOfferId'>;
export type GiftingInstrumentId = Brand<string, 'GiftingInstrumentId'>;
export type BookingRequirementId = Brand<string, 'BookingRequirementId'>;
export type BookingRequirementEvidenceId = Brand<string, 'BookingRequirementEvidenceId'>;
export type BookingRequirementDocumentUploadId = Brand<string, 'BookingRequirementDocumentUploadId'>;
export type BookingRequirementEvidenceAttachmentId = Brand<string, 'BookingRequirementEvidenceAttachmentId'>;
export type ParticipantId = Brand<string, 'ParticipantId'>;
/** Persisted participation-link IDs are introduced by the #729 Phase 2 storage slice. */
export type ParticipantParticipationId = Brand<string, 'ParticipantParticipationId'>;
export type ParticipantRosterAssertionJobId = Brand<string, 'ParticipantRosterAssertionJobId'>;
export type ParticipantBookingQuestionsTaskId = Brand<string, 'ParticipantBookingQuestionsTaskId'>;
export type EventAttendeeGuestId = Brand<string, 'EventAttendeeGuestId'>;
export type PersonRecordId = Brand<string, 'PersonRecordId'>;
export type EncounterRecordId = Brand<string, 'EncounterRecordId'>;
export type RecordEntryId = Brand<string, 'RecordEntryId'>;
export type ProtectedPayloadKeyVersion = Brand<string, 'ProtectedPayloadKeyVersion'>;
/**
 * Content entry identifier. The same nominal type covers real DB entries
 * and preview fixtures; preview entries are further refined by
 * `PreviewEntryId` (see below) so call sites that should only operate on
 * fixtures can be statically constrained.
 */
export type EntryId = Brand<string, 'EntryId'>;
/**
 * Deterministic preview-fixture entry id of the form
 * `preview-<content-type-key>-<seed>`. A `PreviewEntryId` is always an
 * `EntryId`; an `EntryId` is only a `PreviewEntryId` after passing
 * `isPreviewEntryId`. Keeps real DB UUIDs from being accidentally used
 * where the preview client's fixture coordination expects a derived id.
 */
export type PreviewEntryId = EntryId & {
    readonly __preview: true;
};
export declare const asEntryId: (id: string) => EntryId;
/**
 * Mint a preview-fixture entry id. Unsafe at the type level because the
 * function can't verify the input string is actually shaped as a preview
 * id — the predicate `isPreviewEntryId` is the recommended narrowing path.
 */
export declare const unsafeAsPreviewEntryId: (id: string) => PreviewEntryId;
export declare const asEventInstanceId: (id: string) => EventInstanceId;
export declare const asSiteId: (id: string) => SiteId;
export declare const asOccurrenceId: (id: string) => OccurrenceId;
export declare const asEventSeriesId: (id: string) => EventSeriesId;
export declare const asTicketTypeId: (id: string) => TicketTypeId;
export declare const asEventCategoryId: (id: string) => EventCategoryId;
export declare const asVenueId: (id: string) => VenueId;
export declare const asPricingOptionId: (id: string) => PricingOptionId;
export declare const asMoneyDateString: (value: string) => MoneyDateString;
export declare const asStripeCheckoutSessionId: (value: string) => StripeCheckoutSessionId;
export declare const asProductId: (id: string) => ProductId;
export declare const asProductVariantId: (id: string) => ProductVariantId;
export declare const asProductCategoryId: (id: string) => ProductCategoryId;
export declare const asMediaAssetId: (id: string) => MediaAssetId;
export declare const asUploadSessionId: (id: string) => UploadSessionId;
export declare const asStorageBucketName: (value: string) => StorageBucketName;
export declare const asStoragePath: (value: string) => StoragePath;
export declare const unsafeAsRelativeStoragePath: (value: string) => RelativeStoragePath;
export declare const unsafeAsSiteScopedStoragePath: (value: string) => SiteScopedStoragePath;
/** @deprecated Use `unsafeAsRelativeStoragePath` to make the unchecked cast explicit. */
export declare const asRelativeStoragePath: (value: string) => RelativeStoragePath;
/** @deprecated Use `unsafeAsSiteScopedStoragePath` to make the unchecked cast explicit. */
export declare const asSiteScopedStoragePath: (value: string) => SiteScopedStoragePath;
export declare const unsafeAsFileChecksumSha256: (value: string) => FileChecksumSha256;
export declare const asDetectedMimeType: (value: string) => DetectedMimeType;
export declare const asDeclaredMimeType: (value: string) => DeclaredMimeType;
export declare const asOriginalFilename: (value: string) => OriginalFilename;
export declare const unsafeAsSafeDownloadFilename: (value: string) => SafeDownloadFilename;
export declare const unsafeAsPositiveByteCount: (value: number) => PositiveByteCount;
export declare const unsafeAsPositiveSeconds: (value: number) => PositiveSeconds;
export declare const asBookingSessionId: (id: string) => BookingSessionId;
export declare const asEntitlementId: (id: string) => EntitlementId;
export declare const asSiteFontId: (id: string) => SiteFontId;
export declare const asUserId: (id: string) => UserId;
export declare const asFormId: (id: string) => FormId;
export declare const asFormSubmissionId: (id: string) => FormSubmissionId;
export declare const asPassId: (id: string) => PassId;
export declare const asMembershipId: (id: string) => MembershipId;
export declare const asCourseId: (id: string) => CourseId;
export declare const asCustomerId: (id: string) => CustomerId;
export declare const asOrderId: (id: string) => OrderId;
export declare const asOrderItemId: (id: string) => OrderItemId;
export declare const asCheckoutLineId: (id: string) => CheckoutLineId;
export declare const asAttendeeId: (id: string) => AttendeeId;
export declare const asCustomerPassId: (id: string) => CustomerPassId;
export declare const asCustomerMembershipId: (id: string) => CustomerMembershipId;
export declare const asEnrollmentId: (id: string) => EnrollmentId;
export declare const asAppointmentId: (id: string) => AppointmentId;
export declare const asAppointmentServiceId: (id: string) => AppointmentServiceId;
export declare const asAppointmentResourceId: (id: string) => AppointmentResourceId;
export declare const asStaffMemberId: (id: string) => StaffMemberId;
export declare const asBookingCalendarFeedTokenId: (id: string) => BookingCalendarFeedTokenId;
export declare const asBookingCalendarFeedTokenPublicId: (id: string) => BookingCalendarFeedTokenPublicId;
export declare const asBookingCalendarFeedTokenSecret: (value: string) => BookingCalendarFeedTokenSecret;
export declare const asBookingCalendarFeedTokenSecretHash: (value: string) => BookingCalendarFeedTokenSecretHash;
export declare const asContentEntryId: (id: string) => ContentEntryId;
export declare const asStripeInvoiceId: (id: string) => StripeInvoiceId;
export declare const asNewsletterSubscriberId: (id: string) => NewsletterSubscriberId;
export declare const asEmailAuditRowId: (id: string) => EmailAuditRowId;
export declare const asWaitlistEntryId: (id: string) => WaitlistEntryId;
export declare const asWaitlistHoldId: (id: string) => WaitlistHoldId;
export declare const asShipmentId: (id: string) => ShipmentId;
export declare const asActivityLogEntryId: (id: string) => ActivityLogEntryId;
export declare const asGiftingOfferId: (id: string) => GiftingOfferId;
export declare const asGiftingInstrumentId: (id: string) => GiftingInstrumentId;
export declare const asBookingRequirementId: (id: string) => BookingRequirementId;
export declare const asBookingRequirementEvidenceId: (id: string) => BookingRequirementEvidenceId;
export declare const asBookingRequirementDocumentUploadId: (id: string) => BookingRequirementDocumentUploadId;
export declare const asBookingRequirementEvidenceAttachmentId: (id: string) => BookingRequirementEvidenceAttachmentId;
export declare const asParticipantId: (id: string) => ParticipantId;
export declare const asParticipantParticipationId: (id: string) => ParticipantParticipationId;
export declare const asParticipantRosterAssertionJobId: (id: string) => ParticipantRosterAssertionJobId;
export declare const asParticipantBookingQuestionsTaskId: (id: string) => ParticipantBookingQuestionsTaskId;
export declare const asEventAttendeeGuestId: (id: string) => EventAttendeeGuestId;
export declare const asPersonRecordId: (id: string) => PersonRecordId;
export declare const asEncounterRecordId: (id: string) => EncounterRecordId;
export declare const asRecordEntryId: (id: string) => RecordEntryId;
export declare const asProtectedPayloadKeyVersion: (id: string) => ProtectedPayloadKeyVersion;
export {};
