import type { EntityTypeHint, InsertRate, ScopedId, TenantId, TenantShortId, UnscopedId } from "./helpers/config-agnostic-types.js"; import type { UUIDV4, UUIDV8 } from "./helpers/utils.js"; export type { Id, ScopedId, TenantId, TenantShortId, UnscopedId } from "./helpers/config-agnostic-types.js"; export type { UUID, UUIDV4, UUIDV8 } from "./helpers/utils.js"; export declare function initialize(config: Readonly<{ tenantScoped: TenantScopedEntityTypeConfigs; crossTenant: CrossTenantEntityTypeConfigs; }>): { config: Readonly<{ tenantScoped: TenantScopedEntityTypeConfigs; crossTenant: CrossTenantEntityTypeConfigs; }>; makeScopedId: (tenantId: TenantId, entityType: K, date?: Date) => ScopedId; isScopedId: (id: UUIDV8 | ScopedId) => id is ScopedId; stringIsScopedId: (id: string) => id is ScopedId; getTenantShortIdFromScopedId: (id: ScopedId) => TenantShortId; scopedIdsBelongToSameTenant: (ids: ScopedId[]) => boolean; makeUnscopedId: (entityType: K, date?: Date) => UnscopedId; isUnscopedId: (id: UUIDV8 | UnscopedId) => id is UnscopedId; stringIsUnscopedId: (id: string) => id is UnscopedId; isTenantId: (id: UUIDV8) => id is TenantId; makeTenantId: () => TenantId; uuidV4ToTenantId: (id: UUIDV4) => TenantId; getTenantShortIdFromFullId: (id: TenantId) => TenantShortId; stringIsTenantId: (id: string) => id is TenantId; }; export type EntityTypesConfig = Readonly<{ tenantScoped: TenantScopedConfigs; crossTenant: CrossTenantConfigs; }>; export type NamedEntityTypeConfigs = { [k: string]: EntityTypeConfig; }; export type EntityTypeConfig = { insertRate: InsertRate; entityTypeHint: EntityTypeHint; }; type DuplicateTypeHints = { [K in keyof T]: T[K]["entityTypeHint"] extends T[Exclude]["entityTypeHint"] ? K & string : never; }[keyof T]; export type { Satisfies } from "type-party"; export type Duplicates = (DuplicateTypeHints extends never ? never : `ERROR: ${DuplicateTypeHints} has the same entity type hint as another tenant-scoped entity.`) | (DuplicateTypeHints extends never ? never : `ERROR: ${DuplicateTypeHints} has the same entity type hint as another cross-tenant entity.`); //# sourceMappingURL=index.d.ts.map