import { SupportedDialect } from '@nextlyhq/adapter-drizzle/types'; import { z } from 'zod'; import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core'; import { ck as DataFieldConfig, d0 as FieldGroupAdminOptions, d6 as FieldGroupSource, h6 as CollectionLabels, gX as ResolvedVersionsConfig, gY as RevalidateConfig, gZ as StoredWebhookRecording, b$ as CollectionAdminConfig, fE as StoredHookConfig, c8 as CollectionSource, dR as MigrationStatus, h3 as VersionScopeKind, h4 as VersionStatus } from './auth-service.d-B0csjDLa.d.ts'; import * as drizzle_orm_mysql_core from 'drizzle-orm/mysql-core'; import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core'; /** * PostgreSQL schema for the `dynamic_components` table. * * Stores metadata for all Components (UI-created and code-first) * with unified model fields for: * - Source tracking (code, ui) * - Migration status (synced, pending, generated, applied) * - Schema versioning and change detection * * @example * ```typescript * // Query all code-first Components * const codeComponents = await db * .select() * .from(dynamicFieldGroupsPg) * .where(eq(dynamicFieldGroupsPg.source, 'code')); * * // Find Components needing migration * const pendingMigrations = await db * .select() * .from(dynamicFieldGroupsPg) * .where(eq(dynamicFieldGroupsPg.migrationStatus, 'pending')); * ``` */ declare function buildDynamicFieldGroupsPg(tableName: string): drizzle_orm_pg_core.PgTableWithColumns<{ name: string; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; slug: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; label: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tableName: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; description: drizzle_orm_pg_core.PgBuildColumn, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; fields: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "object json"; data: DataFieldConfig[]; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; admin: drizzle_orm_pg_core.PgBuildColumn, { name: string; tableName: string; dataType: "object json"; data: FieldGroupAdminOptions; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; source: drizzle_orm_pg_core.PgBuildColumn, FieldGroupSource>>>, { name: string; tableName: string; dataType: "string"; data: FieldGroupSource; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; locked: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; localized: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; configPath: drizzle_orm_pg_core.PgBuildColumn, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; schemaHash: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; schemaVersion: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; migrationStatus: drizzle_orm_pg_core.PgBuildColumn, "synced" | "pending" | "generated" | "applied" | "failed" | "diverged">>>, { name: string; tableName: string; dataType: "string"; data: "synced" | "pending" | "generated" | "applied" | "failed" | "diverged"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastMigrationId: drizzle_orm_pg_core.PgBuildColumn; createdBy: drizzle_orm_pg_core.PgBuildColumn; createdAt: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * The registry under the name this release's DDL creates. * * The factory exists because the storage migration renames this table, and a * Drizzle object carries its physical name: addressing the renamed table needs * an object built under that name. Index names are derived from the legacy * constant in both instances on purpose — the migration renames the table and * its type discriminator and nothing else, so a renamed table keeps the index * names it was created with on every dialect. */ declare const dynamicFieldGroupsPg: drizzle_orm_pg_core.PgTableWithColumns<{ name: string; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; slug: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; label: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tableName: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; description: drizzle_orm_pg_core.PgBuildColumn, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; fields: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "object json"; data: DataFieldConfig[]; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; admin: drizzle_orm_pg_core.PgBuildColumn, { name: string; tableName: string; dataType: "object json"; data: FieldGroupAdminOptions; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; source: drizzle_orm_pg_core.PgBuildColumn, FieldGroupSource>>>, { name: string; tableName: string; dataType: "string"; data: FieldGroupSource; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; locked: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; localized: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; configPath: drizzle_orm_pg_core.PgBuildColumn, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; schemaHash: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; schemaVersion: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; migrationStatus: drizzle_orm_pg_core.PgBuildColumn, "synced" | "pending" | "generated" | "applied" | "failed" | "diverged">>>, { name: string; tableName: string; dataType: "string"; data: "synced" | "pending" | "generated" | "applied" | "failed" | "diverged"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastMigrationId: drizzle_orm_pg_core.PgBuildColumn; createdBy: drizzle_orm_pg_core.PgBuildColumn; createdAt: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn>, { name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * PostgreSQL-specific select type for dynamic Components. * * Inferred from the Drizzle schema, represents a full row * from the `dynamic_components` table. */ type DynamicFieldGroupPg = typeof dynamicFieldGroupsPg.$inferSelect; /** * PostgreSQL-specific insert type for dynamic Components. * * Inferred from the Drizzle schema, represents the shape * required for inserting a new row. Fields with defaults * (id, timestamps, schemaVersion, etc.) are optional. */ type DynamicFieldGroupInsertPg = typeof dynamicFieldGroupsPg.$inferInsert; /** * MySQL schema for the `dynamic_components` table. * * Stores metadata for all Components (UI-created and code-first) * with unified model fields for: * - Source tracking (code, ui) * - Migration status (synced, pending, generated, applied) * - Schema versioning and change detection */ declare function buildDynamicFieldGroupsMysql(tableName: string): drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: string; schema: undefined; columns: { id: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: true; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; slug: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; label: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; tableName: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; description: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; fields: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object json"; data: DataFieldConfig[]; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; admin: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object json"; data: FieldGroupAdminOptions; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; source: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: FieldGroupSource; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; locked: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; localized: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; configPath: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaHash: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaVersion: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; migrationStatus: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: "synced" | "pending" | "generated" | "applied" | "failed" | "diverged"; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lastMigrationId: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdBy: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "mysql"; }>; /** * The registry under the name this release's DDL creates. * * The factory exists because the storage migration renames this table, and a * Drizzle object carries its physical name: addressing the renamed table needs * an object built under that name. Index names are derived from the legacy * constant in both instances on purpose — the migration renames the table and * its type discriminator and nothing else, so a renamed table keeps the index * names it was created with on every dialect. */ declare const dynamicFieldGroupsMysql: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: string; schema: undefined; columns: { id: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: true; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; slug: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; label: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; tableName: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; description: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; fields: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object json"; data: DataFieldConfig[]; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; admin: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object json"; data: FieldGroupAdminOptions; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; source: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: FieldGroupSource; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; locked: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; localized: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; configPath: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaHash: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaVersion: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; migrationStatus: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: "synced" | "pending" | "generated" | "applied" | "failed" | "diverged"; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lastMigrationId: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdBy: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "mysql"; }>; /** * MySQL-specific select type for dynamic Components. */ type DynamicFieldGroupMysql = typeof dynamicFieldGroupsMysql.$inferSelect; /** * MySQL-specific insert type for dynamic Components. */ type DynamicFieldGroupInsertMysql = typeof dynamicFieldGroupsMysql.$inferInsert; /** * SQLite schema for the `dynamic_components` table. * * Stores metadata for all Components (UI-created and code-first) * with unified model fields for: * - Source tracking (code, ui) * - Migration status (synced, pending, generated, applied) * - Schema versioning and change detection */ declare function buildDynamicFieldGroupsSqlite(tableName: string): drizzle_orm_sqlite_core.SQLiteTableWithColumns<{ name: string; schema: undefined; columns: { id: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: true; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; slug: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; label: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; tableName: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; description: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; fields: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object json"; data: DataFieldConfig[]; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; admin: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object json"; data: FieldGroupAdminOptions; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; source: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: FieldGroupSource; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; locked: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; localized: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; configPath: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaHash: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaVersion: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "number int53"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; migrationStatus: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: "synced" | "pending" | "generated" | "applied" | "failed" | "diverged"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lastMigrationId: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdBy: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; updatedAt: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "sqlite"; }>; /** * The registry under the name this release's DDL creates. * * The factory exists because the storage migration renames this table, and a * Drizzle object carries its physical name: addressing the renamed table needs * an object built under that name. Index names are derived from the legacy * constant in both instances on purpose — the migration renames the table and * its type discriminator and nothing else, so a renamed table keeps the index * names it was created with on every dialect. */ declare const dynamicFieldGroupsSqlite: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{ name: string; schema: undefined; columns: { id: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: true; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; slug: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; label: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; tableName: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; description: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; fields: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object json"; data: DataFieldConfig[]; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; admin: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object json"; data: FieldGroupAdminOptions; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; source: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: FieldGroupSource; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; locked: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; localized: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; configPath: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaHash: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaVersion: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "number int53"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; migrationStatus: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: "synced" | "pending" | "generated" | "applied" | "failed" | "diverged"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lastMigrationId: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdBy: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; updatedAt: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: string; dataType: "object date"; data: Date; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "sqlite"; }>; /** * SQLite-specific select type for dynamic Components. */ type DynamicFieldGroupSqlite = typeof dynamicFieldGroupsSqlite.$inferSelect; /** * SQLite-specific insert type for dynamic Components. */ type DynamicFieldGroupInsertSqlite = typeof dynamicFieldGroupsSqlite.$inferInsert; /** * PostgreSQL schema for the `dynamic_collections` table. * * Stores metadata for all collections (UI-created, code-first, built-in) * with unified model fields for: * - Source tracking (code, ui, built-in) * - Migration status (synced, pending, generated, applied) * - Schema versioning and change detection * * @example * ```typescript * // Query all code-first collections * const codeCollections = await db * .select() * .from(dynamicCollectionsPg) * .where(eq(dynamicCollectionsPg.source, 'code')); * * // Find collections needing migration * const pendingMigrations = await db * .select() * .from(dynamicCollectionsPg) * .where(eq(dynamicCollectionsPg.migrationStatus, 'pending')); * ``` */ declare const dynamicCollectionsPg: drizzle_orm_pg_core.PgTableWithColumns<{ name: "dynamic_collections"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; slug: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; labels: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: CollectionLabels; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tableName: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; description: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; fields: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: DataFieldConfig[]; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; timestamps: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; status: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; localized: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; versions: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.Set$Type, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: ResolvedVersionsConfig; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; revalidate: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.Set$Type, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: RevalidateConfig; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; webhooks: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.Set$Type, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: StoredWebhookRecording; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; admin: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.Set$Type, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: CollectionAdminConfig; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; hooks: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.Set$Type, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: StoredHookConfig[]; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; source: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull, CollectionSource>>>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: CollectionSource; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; locked: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; configPath: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; schemaHash: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; schemaVersion: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; migrationStatus: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull, MigrationStatus>>>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: MigrationStatus; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastMigrationId: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; accessRules: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.Set$Type, { name: string; tableName: "dynamic_collections"; dataType: "object json"; data: { create?: { type: string; allowedRoles?: string[]; }; read?: { type: string; allowedRoles?: string[]; }; update?: { type: string; allowedRoles?: string[]; }; delete?: { type: string; allowedRoles?: string[]; }; publish?: { type: string; allowedRoles?: string[]; }; unpublish?: { type: string; allowedRoles?: string[]; }; }; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdBy: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"dynamic_collections", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "dynamic_collections"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * PostgreSQL-specific select type for dynamic collections. * * Inferred from the Drizzle schema, represents a full row * from the `dynamic_collections` table. * * @example * ```typescript * const collection: DynamicCollectionPg = await db * .select() * .from(dynamicCollectionsPg) * .where(eq(dynamicCollectionsPg.slug, 'posts')) * .limit(1) * .then(rows => rows[0]); * ``` */ type DynamicCollectionPg = typeof dynamicCollectionsPg.$inferSelect; /** * PostgreSQL-specific insert type for dynamic collections. * * Inferred from the Drizzle schema, represents the shape * required for inserting a new row. Fields with defaults * (id, timestamps, schemaVersion, etc.) are optional. * * @example * ```typescript * const newCollection: DynamicCollectionInsertPg = { * slug: 'posts', * labels: { singular: 'Post', plural: 'Posts' }, * tableName: 'posts', * fields: [{ type: 'text', name: 'title', required: true }], * source: 'code', * schemaHash: 'abc123...', * }; * * await db.insert(dynamicCollectionsPg).values(newCollection); * ``` */ type DynamicCollectionInsertPg = typeof dynamicCollectionsPg.$inferInsert; /** * MySQL schema for the `dynamic_collections` table. * * Stores metadata for all collections (UI-created, code-first, built-in) * with unified model fields for: * - Source tracking (code, ui, built-in) * - Migration status (synced, pending, generated, applied) * - Schema versioning and change detection * * @example * ```typescript * // Query all code-first collections * const codeCollections = await db * .select() * .from(dynamicCollectionsMysql) * .where(eq(dynamicCollectionsMysql.source, 'code')); * * // Find collections needing migration * const pendingMigrations = await db * .select() * .from(dynamicCollectionsMysql) * .where(eq(dynamicCollectionsMysql.migrationStatus, 'pending')); * ``` */ declare const dynamicCollectionsMysql: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "dynamic_collections"; schema: undefined; columns: { id: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; slug: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; labels: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: CollectionLabels; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; tableName: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; description: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; fields: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: DataFieldConfig[]; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; timestamps: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; status: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; localized: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; versions: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: ResolvedVersionsConfig; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; revalidate: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: RevalidateConfig; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; webhooks: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: StoredWebhookRecording; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; admin: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: CollectionAdminConfig; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; hooks: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: StoredHookConfig[]; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; source: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: CollectionSource; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; locked: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; configPath: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaHash: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaVersion: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; migrationStatus: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: MigrationStatus; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lastMigrationId: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; accessRules: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: { create?: { type: string; allowedRoles?: string[]; }; read?: { type: string; allowedRoles?: string[]; }; update?: { type: string; allowedRoles?: string[]; }; delete?: { type: string; allowedRoles?: string[]; }; publish?: { type: string; allowedRoles?: string[]; }; unpublish?: { type: string; allowedRoles?: string[]; }; }; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdBy: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object date"; data: Date; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object date"; data: Date; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "mysql"; }>; /** * MySQL-specific select type for dynamic collections. * * Inferred from the Drizzle schema, represents a full row * from the `dynamic_collections` table. * * @example * ```typescript * const collection: DynamicCollectionMysql = await db * .select() * .from(dynamicCollectionsMysql) * .where(eq(dynamicCollectionsMysql.slug, 'posts')) * .limit(1) * .then(rows => rows[0]); * ``` */ type DynamicCollectionMysql = typeof dynamicCollectionsMysql.$inferSelect; /** * MySQL-specific insert type for dynamic collections. * * Inferred from the Drizzle schema, represents the shape * required for inserting a new row. Fields with defaults * (id, timestamps, schemaVersion, etc.) are optional. * * @example * ```typescript * const newCollection: DynamicCollectionInsertMysql = { * slug: 'posts', * labels: { singular: 'Post', plural: 'Posts' }, * tableName: 'posts', * fields: [{ type: 'text', name: 'title', required: true }], * source: 'code', * schemaHash: 'abc123...', * }; * * await db.insert(dynamicCollectionsMysql).values(newCollection); * ``` */ type DynamicCollectionInsertMysql = typeof dynamicCollectionsMysql.$inferInsert; /** * SQLite schema for the `dynamic_collections` table. * * Stores metadata for all collections (UI-created, code-first, built-in) * with unified model fields for: * - Source tracking (code, ui, built-in) * - Migration status (synced, pending, generated, applied) * - Schema versioning and change detection * * @example * ```typescript * // Query all code-first collections * const codeCollections = await db * .select() * .from(dynamicCollectionsSqlite) * .where(eq(dynamicCollectionsSqlite.source, 'code')); * * // Find collections needing migration * const pendingMigrations = await db * .select() * .from(dynamicCollectionsSqlite) * .where(eq(dynamicCollectionsSqlite.migrationStatus, 'pending')); * ``` */ declare const dynamicCollectionsSqlite: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{ name: "dynamic_collections"; schema: undefined; columns: { id: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: true; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; slug: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; labels: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: CollectionLabels; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; tableName: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; description: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; fields: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: DataFieldConfig[]; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; timestamps: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; status: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; localized: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; versions: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: ResolvedVersionsConfig; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; revalidate: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: RevalidateConfig; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; webhooks: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: StoredWebhookRecording; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; admin: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: CollectionAdminConfig; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; hooks: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: StoredHookConfig[]; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; source: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: CollectionSource; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; locked: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; configPath: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaHash: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; schemaVersion: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "number int53"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; migrationStatus: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: MigrationStatus; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lastMigrationId: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; accessRules: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object json"; data: { create?: { type: string; allowedRoles?: string[]; }; read?: { type: string; allowedRoles?: string[]; }; update?: { type: string; allowedRoles?: string[]; }; delete?: { type: string; allowedRoles?: string[]; }; publish?: { type: string; allowedRoles?: string[]; }; unpublish?: { type: string; allowedRoles?: string[]; }; }; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdBy: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object date"; data: Date; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; updatedAt: drizzle_orm_sqlite_core.SQLiteColumn<{ name: string; tableName: "dynamic_collections"; dataType: "object date"; data: Date; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: true; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "sqlite"; }>; /** * SQLite-specific select type for dynamic collections. * * Inferred from the Drizzle schema, represents a full row * from the `dynamic_collections` table. * * @example * ```typescript * const collection: DynamicCollectionSqlite = await db * .select() * .from(dynamicCollectionsSqlite) * .where(eq(dynamicCollectionsSqlite.slug, 'posts')) * .limit(1) * .then(rows => rows[0]); * ``` */ type DynamicCollectionSqlite = typeof dynamicCollectionsSqlite.$inferSelect; /** * SQLite-specific insert type for dynamic collections. * * Inferred from the Drizzle schema, represents the shape * required for inserting a new row. Fields with defaults * (id, timestamps, schemaVersion, etc.) are optional. * * @example * ```typescript * const newCollection: DynamicCollectionInsertSqlite = { * slug: 'posts', * labels: { singular: 'Post', plural: 'Posts' }, * tableName: 'posts', * fields: [{ type: 'text', name: 'title', required: true }], * source: 'code', * schemaHash: 'abc123...', * }; * * await db.insert(dynamicCollectionsSqlite).values(newCollection); * ``` */ type DynamicCollectionInsertSqlite = typeof dynamicCollectionsSqlite.$inferInsert; interface ColumnSpec { name: string; type: string; nullable: boolean; default?: string; primaryKey?: boolean; ownedSequenceDefault?: boolean; typeModifier?: string; } interface IndexSpec { name: string; columns: string[]; unique: boolean; } interface TableSpec { name: string; columns: ColumnSpec[]; indexes?: IndexSpec[]; localized?: boolean; localizedColumns?: string[]; } interface NextlySchemaSnapshot { tables: TableSpec[]; } declare const UserIdSchema: z.ZodUnion; declare const MinimalUserSchema: z.ZodObject<{ id: z.ZodUnion; email: z.ZodString; emailVerified: z.ZodOptional>; name: z.ZodNullable; image: z.ZodNullable; isActive: z.ZodOptional; createdAt: z.ZodOptional>; updatedAt: z.ZodOptional>; roles: z.ZodOptional>>; }, z.core.$loose>; declare const UserAccountSchema: z.ZodObject<{ id: z.ZodUnion; userId: z.ZodUnion; provider: z.ZodString; providerAccountId: z.ZodString; type: z.ZodString; }, z.core.$strip>; declare const CreateLocalUserSchema: z.ZodObject<{ email: z.ZodPipe>; name: z.ZodString; image: z.ZodOptional>; password: z.ZodOptional; roles: z.ZodOptional>; isActive: z.ZodOptional; sendWelcomeEmail: z.ZodOptional; }, z.core.$strip>; declare const CreateUserWithPasswordSchema: z.ZodObject<{ email: z.ZodPipe>; name: z.ZodString; password: z.ZodString; }, z.core.$strip>; declare const UpdateUserSchema: z.ZodObject<{ email: z.ZodOptional>>; name: z.ZodOptional>; password: z.ZodOptional; image: z.ZodOptional>>; emailVerified: z.ZodOptional>; roles: z.ZodOptional>; isActive: z.ZodOptional; sendWelcomeEmail: z.ZodOptional; }, z.core.$strip>; declare const UpdatePasswordSchema: z.ZodObject<{ userId: z.ZodUnion; password: z.ZodString; }, z.core.$strip>; declare const GetUserByIdSchema: z.ZodObject<{ userId: z.ZodUnion; }, z.core.$strip>; declare const DeleteUserSchema: z.ZodObject<{ userId: z.ZodUnion; }, z.core.$strip>; declare const ListUsersSchema: z.ZodObject<{ page: z.ZodDefault>; limit: z.ZodDefault>; search: z.ZodOptional; emailVerified: z.ZodOptional; hasPassword: z.ZodOptional; createdAtFrom: z.ZodOptional; createdAtTo: z.ZodOptional; sortBy: z.ZodDefault>>; sortOrder: z.ZodDefault>>; }, z.core.$strip>; declare const DeleteUserAccountSchema: z.ZodObject<{ userId: z.ZodUnion; provider: z.ZodString; providerAccountId: z.ZodString; }, z.core.$strip>; declare const UnlinkAccountSchema: z.ZodObject<{ userId: z.ZodUnion; provider: z.ZodString; providerAccountId: z.ZodString; }, z.core.$strip>; declare const UserListResponseSchema: z.ZodArray; email: z.ZodString; emailVerified: z.ZodOptional>; name: z.ZodNullable; image: z.ZodNullable; isActive: z.ZodOptional; createdAt: z.ZodOptional>; updatedAt: z.ZodOptional>; roles: z.ZodOptional>>; }, z.core.$loose>>; declare const UserResponseSchema: z.ZodObject<{ id: z.ZodUnion; email: z.ZodString; emailVerified: z.ZodOptional>; name: z.ZodNullable; image: z.ZodNullable; isActive: z.ZodOptional; createdAt: z.ZodOptional>; updatedAt: z.ZodOptional>; roles: z.ZodOptional>>; }, z.core.$loose>; declare const DeleteUserResponseSchema: z.ZodObject<{ deleted: z.ZodBoolean; }, z.core.$strip>; declare const UnlinkAccountResponseSchema: z.ZodUnion; }, z.core.$strip>, z.ZodObject<{ ok: z.ZodLiteral; status: z.ZodNumber; error: z.ZodString; }, z.core.$strip>]>; type MinimalUser = z.infer; type UserAccount = z.infer; type CreateLocalUser = z.infer; type CreateUserWithPassword = z.infer; type UpdateUser = z.infer; type UpdatePassword = z.infer; type GetUserById = z.infer; type DeleteUser = z.infer; type ListUsers = z.infer; type DeleteUserAccount = z.infer; type UnlinkAccount = z.infer; type UserListResponse = z.infer; type UserResponse = z.infer; type DeleteUserResponse = z.infer; type UnlinkAccountResponse = z.infer; declare const IdSchema: z.ZodString; /** * System resources that are always available regardless of dynamic collections. * These represent core Nextly entities that exist in every installation. * * This list is not only an allowlist: `cleanupOrphanedPermissions` deletes any * owner-less permission whose resource is absent from here and is not a * collection, single or component, together with its role grants. Seeded system * permissions have no owner, so **every resource named in `SYSTEM_PERMISSIONS` * must appear here** or its permissions survive seeding and vanish on the next * cleanup pass, silently removing the access every non-super-admin role had to * that surface. A test in `seed-system-permissions.integration.test.ts` enforces * the pairing. */ declare const SYSTEM_RESOURCES: readonly ["users", "roles", "permissions", "media", "settings", "email-providers", "email-templates", "api-keys", "webhooks"]; type SystemResource = (typeof SYSTEM_RESOURCES)[number]; /** * Check if a resource is a built-in system resource. */ declare function isSystemResource(resource: string): resource is SystemResource; /** * A permission's identity: what every authorization check looks up. * * Order is the whole content of this function, and it is not a matter of taste. * A permission row is found by its slug, so a producer that writes * `users-read` and a guard that reads `read-users` do not disagree loudly — * the lookup simply misses, and a grant that the admin panel shows as assigned * authorizes nothing. The failure is silent, and it is silent in the direction * of denial, which is safe but indistinguishable from the permission never * having been granted. * * It exists as a function because the convention was previously written out at * each of eleven call sites, and one of them had the two halves the wrong way * round. Composing the string by hand is what allows that, so the string is * composed here and nowhere else. */ declare function permissionSlug(action: string, resource: string): string; /** * A permission's display label, for the admin list and nothing else. * * Separate from {@link permissionSlug} on purpose: this one is free to change * without consequence, while the slug is an identity that existing rows and * grants are keyed on. */ declare function permissionName(action: string, resource: string): string; /** * Check if a resource is valid (either a system resource or a known collection slug). * The caller provides known collection slugs from the database. */ declare function isValidResource(resource: string, knownCollectionSlugs: string[]): boolean; /** * Whether a slug may not be used for a collection or single, because it would * collide with a system resource's permissions. * * Permission identity is `action-resource`, so a content type named after a * system resource seeds the exact rows that resource's routes check: a * `webhooks` single seeds `read-webhooks` / `update-webhooks` and reaches the * endpoint routes and their signing secrets; a `settings` single seeds * `read-settings` / `update-settings` and reaches the user-fields and component * admin surfaces (`routeHandler.ts` gates those on `{action, "settings"}`, not * only `manage`); a `media` collection seeds `*-media` and reaches the media * routes. Every system resource has at least one route enforcing a * create/read/update/delete action that content seeding produces, so any system * resource name is unsafe as a content slug. * * Defined as "is a system resource" rather than a hand-maintained subset so a * newly added system resource is protected automatically. Reserving a name that * turned out to be manage-only would merely forbid a content type no one should * create; leaving one out is a privilege-escalation. * * Components are intentionally NOT covered: a component definition does not seed * a permission under its own slug (the component admin routes are gated on the * `settings`/`components` resource), so a component name cannot mint a colliding * row and reserving it would only reject a harmless name. */ declare function isReservedResourceSlug(slug: string): boolean; declare const RoleSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; slug: z.ZodString; description: z.ZodOptional>; level: z.ZodDefault; isSystem: z.ZodDefault; createdAt: z.ZodOptional; updatedAt: z.ZodOptional; }, z.core.$strip>; declare const CreateRoleSchema: z.ZodObject<{ name: z.ZodString; slug: z.ZodString; description: z.ZodOptional>; level: z.ZodDefault; isSystem: z.ZodDefault; child: z.ZodDefault>>; }, z.core.$strip>; declare const UpdateRoleSchema: z.ZodObject<{ name: z.ZodOptional; slug: z.ZodOptional; description: z.ZodOptional>; level: z.ZodOptional; isSystem: z.ZodOptional; child: z.ZodOptional>; }, z.core.$strip>; declare const GetRoleByIdSchema: z.ZodObject<{ roleId: z.ZodString; }, z.core.$strip>; declare const DeleteRoleSchema: z.ZodObject<{ roleId: z.ZodString; }, z.core.$strip>; declare const PermissionActionSchema: z.ZodEnum<{ create: "create"; read: "read"; update: "update"; delete: "delete"; publish: "publish"; unpublish: "unpublish"; manage: "manage"; }>; declare const PermissionResourceSchema: z.ZodString; declare const PermissionSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; slug: z.ZodString; action: z.ZodEnum<{ create: "create"; read: "read"; update: "update"; delete: "delete"; publish: "publish"; unpublish: "unpublish"; manage: "manage"; }>; resource: z.ZodString; description: z.ZodOptional>; createdAt: z.ZodOptional; updatedAt: z.ZodOptional; }, z.core.$strip>; declare const CreatePermissionSchema: z.ZodObject<{ name: z.ZodString; slug: z.ZodString; action: z.ZodEnum<{ create: "create"; read: "read"; update: "update"; delete: "delete"; publish: "publish"; unpublish: "unpublish"; manage: "manage"; }>; resource: z.ZodString; description: z.ZodOptional>; }, z.core.$strip>; declare const UpdatePermissionSchema: z.ZodObject<{ name: z.ZodOptional; slug: z.ZodOptional; action: z.ZodOptional>; resource: z.ZodOptional; description: z.ZodOptional>; }, z.core.$strip>; declare const GetPermissionByIdSchema: z.ZodObject<{ permissionId: z.ZodString; }, z.core.$strip>; declare const DeletePermissionSchema: z.ZodObject<{ permissionId: z.ZodString; }, z.core.$strip>; declare const RolePermissionSchema: z.ZodObject<{ id: z.ZodString; roleId: z.ZodString; permissionId: z.ZodString; createdAt: z.ZodOptional; }, z.core.$strip>; declare const AssignPermissionToRoleSchema: z.ZodObject<{ roleId: z.ZodString; permissionId: z.ZodString; }, z.core.$strip>; declare const RemovePermissionFromRoleSchema: z.ZodObject<{ roleId: z.ZodString; permissionId: z.ZodString; }, z.core.$strip>; declare const UserRoleSchema: z.ZodObject<{ id: z.ZodString; userId: z.ZodString; roleId: z.ZodString; createdAt: z.ZodOptional; expiresAt: z.ZodOptional>; }, z.core.$strip>; declare const AssignRoleToUserSchema: z.ZodObject<{ userId: z.ZodString; roleId: z.ZodString; expiresAt: z.ZodOptional>; }, z.core.$strip>; declare const RemoveRoleFromUserSchema: z.ZodObject<{ userId: z.ZodString; roleId: z.ZodString; }, z.core.$strip>; declare const RoleInheritanceSchema: z.ZodObject<{ id: z.ZodString; parentRoleId: z.ZodString; childRoleId: z.ZodString; }, z.core.$strip>; declare const CreateRoleInheritanceSchema: z.ZodObject<{ parentRoleId: z.ZodString; childRoleId: z.ZodString; }, z.core.$strip>; declare const DeleteRoleInheritanceSchema: z.ZodObject<{ parentRoleId: z.ZodString; childRoleId: z.ZodString; }, z.core.$strip>; declare const GetUserRolesSchema: z.ZodObject<{ userId: z.ZodString; }, z.core.$strip>; declare const GetRolePermissionsSchema: z.ZodObject<{ roleId: z.ZodString; }, z.core.$strip>; declare const GetUserPermissionsSchema: z.ZodObject<{ userId: z.ZodString; }, z.core.$strip>; declare const CheckUserPermissionSchema: z.ZodObject<{ userId: z.ZodString; action: z.ZodEnum<{ create: "create"; read: "read"; update: "update"; delete: "delete"; publish: "publish"; unpublish: "unpublish"; manage: "manage"; }>; resource: z.ZodString; }, z.core.$strip>; declare const RoleListResponseSchema: z.ZodArray>; level: z.ZodDefault; isSystem: z.ZodDefault; createdAt: z.ZodOptional; updatedAt: z.ZodOptional; }, z.core.$strip>>; declare const PermissionListResponseSchema: z.ZodArray; resource: z.ZodString; description: z.ZodOptional>; createdAt: z.ZodOptional; updatedAt: z.ZodOptional; }, z.core.$strip>>; declare const UserRoleListResponseSchema: z.ZodArray; expiresAt: z.ZodOptional>; }, z.core.$strip>>; declare const RolePermissionListResponseSchema: z.ZodArray; }, z.core.$strip>>; declare const PermissionCheckResponseSchema: z.ZodObject<{ hasPermission: z.ZodBoolean; reason: z.ZodOptional; }, z.core.$strip>; type Role = z.infer; type CreateRole = z.infer; type UpdateRole = z.infer; type GetRoleById = z.infer; type DeleteRole = z.infer; type PermissionAction = z.infer; type PermissionResource = z.infer; type Permission = z.infer; type CreatePermission = z.infer; type UpdatePermission = z.infer; type GetPermissionById = z.infer; type DeletePermission = z.infer; type RolePermission = z.infer; type AssignPermissionToRole = z.infer; type RemovePermissionFromRole = z.infer; type UserRole = z.infer; type AssignRoleToUser = z.infer; type RemoveRoleFromUser = z.infer; type RoleInheritance = z.infer; type CreateRoleInheritance = z.infer; type DeleteRoleInheritance = z.infer; type GetUserRoles = z.infer; type GetRolePermissions = z.infer; type GetUserPermissions = z.infer; type CheckUserPermission = z.infer; type RoleListResponse = z.infer; type PermissionListResponse = z.infer; type UserRoleListResponse = z.infer; type RolePermissionListResponse = z.infer; type PermissionCheckResponse = z.infer; declare const PaginationSchema: z.ZodObject<{ page: z.ZodDefault; limit: z.ZodDefault; offset: z.ZodOptional; }, z.core.$strip>; declare const PaginatedResponseSchema: (dataSchema: T) => z.ZodObject<{ data: z.ZodArray; pagination: z.ZodObject>; }>; declare const SortOrderSchema: z.ZodDefault>; declare const SortSchema: z.ZodObject<{ field: z.ZodString; order: z.ZodDefault>; }, z.core.$strip>; declare const DateRangeSchema: z.ZodObject<{ from: z.ZodOptional; to: z.ZodOptional; }, z.core.$strip>; declare const SearchSchema: z.ZodObject<{ query: z.ZodString; fields: z.ZodOptional>; }, z.core.$strip>; declare const SuccessResponseSchema: z.ZodObject<{ success: z.ZodLiteral; message: z.ZodOptional; data: z.ZodOptional; }, z.core.$strip>; declare const ErrorResponseSchema: z.ZodObject<{ success: z.ZodLiteral; error: z.ZodString; code: z.ZodOptional; details: z.ZodOptional; }, z.core.$strip>; /** * @deprecated Use `ValidationError` and `ValidationErrorResponse` from `nextly/validation` instead. * This schema will be removed in a future version. * * Migration: * ```typescript * // Old * import { ValidationErrorSchema } from 'nextly/schemas/validation'; * * // New * import { ValidationError, ValidationErrorResponse } from 'nextly/validation'; * ``` */ declare const ValidationErrorSchema: z.ZodObject<{ success: z.ZodLiteral; error: z.ZodLiteral<"Validation failed">; details: z.ZodArray; }, z.core.$strip>>; }, z.core.$strip>; declare const BulkOperationSchema: z.ZodObject<{ ids: z.ZodArray; operation: z.ZodEnum<{ update: "update"; delete: "delete"; activate: "activate"; deactivate: "deactivate"; }>; }, z.core.$strip>; declare const BulkOperationResponseSchema: z.ZodObject<{ success: z.ZodBoolean; processed: z.ZodNumber; failed: z.ZodNumber; errors: z.ZodOptional>>; }, z.core.$strip>; declare const FileUploadSchema: z.ZodObject<{ filename: z.ZodString; mimetype: z.ZodString; size: z.ZodNumber; buffer: z.ZodOptional, Buffer>>; }, z.core.$strip>; declare const ImageUploadSchema: z.ZodObject<{ filename: z.ZodString; buffer: z.ZodOptional, Buffer>>; mimetype: z.ZodString; size: z.ZodNumber; }, z.core.$strip>; declare const EmailSchema: z.ZodPipe>; declare const PasswordSchema: z.ZodString; declare const UrlSchema: z.ZodString; declare const PhoneSchema: z.ZodString; type Pagination = z.infer; type PaginatedResponse = z.infer>>; type SortOrder = z.infer; type Sort = z.infer; type DateRange = z.infer; type Search = z.infer; type SuccessResponse = z.infer; type ErrorResponse = z.infer; /** * @deprecated Use `ValidationError` from `nextly/validation` instead. * Renamed to `LegacyValidationError` to avoid conflicts. */ type LegacyValidationError = z.infer; type BulkOperation = z.infer; type BulkOperationResponse = z.infer; type FileUpload = z.infer; type ImageUpload = z.infer; /** * The three token types that determine how permissions are resolved at request time. * - "read-only" — resolves to the creator's read-* permissions only * - "full-access" — resolves to the creator's full permission set * - "role-based" — resolves to the permissions of the selected role */ declare const ApiKeyTokenTypeSchema: z.ZodEnum<{ "role-based": "role-based"; "read-only": "read-only"; "full-access": "full-access"; }>; /** * Token duration options. "unlimited" means the key never expires. */ declare const ExpiresInSchema: z.ZodEnum<{ "7d": "7d"; "30d": "30d"; "90d": "90d"; unlimited: "unlimited"; }>; /** * Validates the request body for POST /api/api-keys. * * Refinement rules: * - `roleId` is required when `tokenType === "role-based"` * - `roleId` must be absent (undefined) when `tokenType` is not "role-based" */ declare const CreateApiKeySchema: z.ZodObject<{ name: z.ZodString; description: z.ZodOptional; tokenType: z.ZodEnum<{ "role-based": "role-based"; "read-only": "read-only"; "full-access": "full-access"; }>; roleId: z.ZodOptional; expiresIn: z.ZodEnum<{ "7d": "7d"; "30d": "30d"; "90d": "90d"; unlimited: "unlimited"; }>; }, z.core.$strip>; /** * Validates the request body for PATCH /api/api-keys/:id. * * Only name and description may be updated. Token type, role, and duration * are immutable — revoke and recreate to change them. */ declare const UpdateApiKeySchema: z.ZodObject<{ name: z.ZodOptional; description: z.ZodOptional>; }, z.core.$strip>; type ApiKeyTokenTypeEnum = z.infer; type ExpiresInEnum = z.infer; type CreateApiKey = z.infer; type UpdateApiKey = z.infer; /** * `ui-schema.json` manifest — Zod source of truth (spec §4.12). * * One schema drives every validation layer (IDE `$schema`, dev-server watcher, * CLI load, dev write API, migrate:check). Field `type` uses the codebase's * canonical `FieldType` tokens (the builder subset) so the manifest round-trips * through `getColumnDescriptor` with no translation — see `to-snapshot.ts`. * * NOTE (spec deviation): spec §4.12.2 lists `boolean`; the canonical token is * `checkbox`. We use the canonical names. * * @module schemas/_zod/ui-schema * @since v0.0.3-alpha (Plan D1) */ /** * Canonical field-type tokens supported in ui-schema.json. Mirrors the set * `field-column-descriptor.ts:classifyFieldKind` maps to a column, so the * manifest round-trips through `getColumnDescriptor` with no translation. */ /** The tokens whose default shape core is able to judge. */ declare const UI_FIELD_TYPES: readonly ["text", "textarea", "richText", "number", "checkbox", "date", "select", "relationship", "upload", "email", "password", "code", "radio", "repeater", "group", "component", "json", "chips"]; /** * Whether a field type is one this schema names, rather than a token a plugin contributed or a * token nothing has registered at all. * * The field schema accepts any slug-shaped token, so "not one of ours" is a state a stored field can * genuinely be in, and the layers that decide storage have to tell it apart from a built-in. Asked * here because this is where the list of built-ins is declared; a caller keeping its own copy would * answer wrongly the first time the list grew. */ declare function isBuiltInFieldType(type: string): boolean; type FieldNode = { name: string; type: (typeof UI_FIELD_TYPES)[number] | (string & {}); label?: string; /** * Options belonging to the field's own plugin type, which core never reads. * * Typed loosely because the value is passed through rather than rebuilt: a * schema that reconstructed it would lose an own `__proto__` or refuse an own * `constructor`. Read it with `pluginOptionContainer`, which checks the shape * at the point of use. */ pluginOptions?: unknown; required?: boolean; unique?: boolean; index?: boolean; localized?: boolean; hasMany?: boolean; relationTo?: string | string[]; options?: { id?: string; label: string; value: string; }[]; defaultValue?: unknown; validation?: { minLength?: number; maxLength?: number; min?: number; max?: number; minRows?: number; maxRows?: number; pattern?: string; message?: string; }; admin?: { width?: string; position?: "sidebar"; readOnly?: boolean; hidden?: boolean; description?: string; placeholder?: string; hideGutter?: boolean; allowCreate?: boolean; condition?: Record; }; maxDepth?: number; allowCreate?: boolean; allowEdit?: boolean; isSortable?: boolean; relationshipFilter?: { field: string; equals: string; }; mimeTypes?: string; maxFileSize?: number; labels?: { singular?: string; plural?: string; }; initCollapsed?: boolean; rowLabelField?: string; component?: string; components?: string[]; repeatable?: boolean; fields?: FieldNode[]; }; /** * The single-field schema, exported so the schema-apply endpoints validate * incoming field payloads with EXACTLY the rules the ui-schema.json mirror * enforces. One validator for both writers is what keeps the DB and the * committed manifest from ever disagreeing about what a legal field is. */ declare const uiSchemaFieldSchema: z.ZodType; declare const uiSchemaManifest: z.ZodObject<{ $schema: z.ZodOptional; version: z.ZodDefault>; collections: z.ZodDefault>; admin: z.ZodOptional; defaultColumns: z.ZodOptional>; group: z.ZodOptional; }, z.core.$strip>>; status: z.ZodOptional; localized: z.ZodOptional; versions: z.ZodOptional; versionsMaxPerDoc: z.ZodOptional]>>; revalidate: z.ZodOptional; webhooks: z.ZodOptional; fields: z.ZodArray>>; }, z.core.$strip>>>; singles: z.ZodDefault>; admin: z.ZodOptional; defaultColumns: z.ZodOptional>; group: z.ZodOptional; }, z.core.$strip>>; status: z.ZodOptional; localized: z.ZodOptional; versions: z.ZodOptional; versionsMaxPerDoc: z.ZodOptional]>>; revalidate: z.ZodOptional; webhooks: z.ZodOptional; fields: z.ZodArray>>; }, z.core.$strip>>>; components: z.ZodDefault>; admin: z.ZodOptional; defaultColumns: z.ZodOptional>; group: z.ZodOptional; }, z.core.$strip>>; status: z.ZodOptional; localized: z.ZodOptional; versions: z.ZodOptional; versionsMaxPerDoc: z.ZodOptional]>>; revalidate: z.ZodOptional; webhooks: z.ZodOptional; fields: z.ZodArray>>; }, z.core.$strip>>>; }, z.core.$strip>; type UiSchemaManifest = z.infer; type UiSchemaEntity = UiSchemaManifest["collections"][number]; type UiSchemaField = UiSchemaEntity["fields"][number]; /** Parse without throwing. Layers decide how to surface `!success`. */ declare function parseUiSchema(input: unknown): z.ZodSafeParseResult<{ version: 1; collections: { slug: string; fields: FieldNode[]; labels?: { singular: string; plural: string; } | undefined; admin?: { useAsTitle?: string | undefined; defaultColumns?: string[] | undefined; group?: string | undefined; } | undefined; status?: boolean | undefined; localized?: boolean | undefined; versions?: boolean | undefined; versionsMaxPerDoc?: number | false | undefined; revalidate?: boolean | undefined; webhooks?: boolean | undefined; }[]; singles: { slug: string; fields: FieldNode[]; labels?: { singular: string; plural: string; } | undefined; admin?: { useAsTitle?: string | undefined; defaultColumns?: string[] | undefined; group?: string | undefined; } | undefined; status?: boolean | undefined; localized?: boolean | undefined; versions?: boolean | undefined; versionsMaxPerDoc?: number | false | undefined; revalidate?: boolean | undefined; webhooks?: boolean | undefined; }[]; components: { slug: string; fields: FieldNode[]; labels?: { singular: string; plural: string; } | undefined; admin?: { useAsTitle?: string | undefined; defaultColumns?: string[] | undefined; group?: string | undefined; } | undefined; status?: boolean | undefined; localized?: boolean | undefined; versions?: boolean | undefined; versionsMaxPerDoc?: number | false | undefined; revalidate?: boolean | undefined; webhooks?: boolean | undefined; }[]; $schema?: string | undefined; }>; /** JSON-schema document for the `$schema` URL (auto-generated from Zod). */ declare function uiSchemaJsonSchema(): unknown; /** * Request shapes for the webhook endpoint surface. * * Field names follow what the webhook ecosystem has converged on — `url`, * `enabled`, an explicit event-type list, a human `description` — so an * integration written against Stripe or Svix reads the same here. * * Subscription is an explicit list of event types, and also accepts the `"*"` * wildcard for "all-and-future". Both models exist in the market and fail in * opposite directions: a new event type immediately changes what a wildcard * endpoint receives (which can surprise a consumer that matches types * exhaustively), while an explicit list costs the consumer an update to receive * a newly-added type. Wildcard is offered because an operator managing endpoints * usually wants "everything" without editing config as the catalog grows; a * consumer that needs the exhaustive-matching guarantee should list specific * types instead. The wildcard cannot be combined with specific types. * * @module schemas/_zod/webhooks */ /** * The event types an endpoint may subscribe to. * * Bound to the same constant the fan-out matches against, so a type that * cannot be delivered cannot be subscribed to either — a silently-never-firing * subscription is worse than a rejected one. * * Passed directly rather than widened to `[string, ...string[]]`: the literal * members survive inference, so a parsed request body carries * `WebhookEventType[]` and reaches the service without a cast at the boundary. */ declare const WebhookEventTypeSchema: z.ZodEnum<{ "entry.created": "entry.created"; "entry.updated": "entry.updated"; "entry.deleted": "entry.deleted"; "entry.published": "entry.published"; "entry.unpublished": "entry.unpublished"; "entry.status_changed": "entry.status_changed"; "single.updated": "single.updated"; "single.published": "single.published"; "single.unpublished": "single.unpublished"; "media.uploaded": "media.uploaded"; "media.updated": "media.updated"; "media.deleted": "media.deleted"; "user.created": "user.created"; "user.deleted": "user.deleted"; "form.submission.created": "form.submission.created"; }>; /** * One subscription entry: a concrete event type or the wildcard for * all-and-future. The wildcard is accepted only in the subscription list, never * in the finer `FilterSpec`. */ declare const WebhookEventSubscriptionSchema: z.ZodUnion, z.ZodEnum<{ "entry.created": "entry.created"; "entry.updated": "entry.updated"; "entry.deleted": "entry.deleted"; "entry.published": "entry.published"; "entry.unpublished": "entry.unpublished"; "entry.status_changed": "entry.status_changed"; "single.updated": "single.updated"; "single.published": "single.published"; "single.unpublished": "single.unpublished"; "media.uploaded": "media.uploaded"; "media.updated": "media.updated"; "media.deleted": "media.deleted"; "user.created": "user.created"; "user.deleted": "user.deleted"; "form.submission.created": "form.submission.created"; }>]>; declare const CreateWebhookSchema: z.ZodObject<{ name: z.ZodString; url: z.ZodString; eventTypes: z.ZodArray, z.ZodEnum<{ "entry.created": "entry.created"; "entry.updated": "entry.updated"; "entry.deleted": "entry.deleted"; "entry.published": "entry.published"; "entry.unpublished": "entry.unpublished"; "entry.status_changed": "entry.status_changed"; "single.updated": "single.updated"; "single.published": "single.published"; "single.unpublished": "single.unpublished"; "media.uploaded": "media.uploaded"; "media.updated": "media.updated"; "media.deleted": "media.deleted"; "user.created": "user.created"; "user.deleted": "user.deleted"; "form.submission.created": "form.submission.created"; }>]>>; enabled: z.ZodOptional; headers: z.ZodOptional>>; }, z.core.$strip>; /** * Every field optional: a PATCH updates what it names. `null` on a nullable * field means "clear this", `undefined` means "leave it alone" — the * distinction the update path relies on to tell an omitted field from a * deliberate reset. */ declare const UpdateWebhookSchema: z.ZodObject<{ name: z.ZodOptional; url: z.ZodOptional; eventTypes: z.ZodOptional, z.ZodEnum<{ "entry.created": "entry.created"; "entry.updated": "entry.updated"; "entry.deleted": "entry.deleted"; "entry.published": "entry.published"; "entry.unpublished": "entry.unpublished"; "entry.status_changed": "entry.status_changed"; "single.updated": "single.updated"; "single.published": "single.published"; "single.unpublished": "single.unpublished"; "media.uploaded": "media.uploaded"; "media.updated": "media.updated"; "media.deleted": "media.deleted"; "user.created": "user.created"; "user.deleted": "user.deleted"; "form.submission.created": "form.submission.created"; }>]>>>; enabled: z.ZodOptional; headers: z.ZodOptional>>; }, z.core.$strip>; /** * Rotating a signing secret. `overlapSeconds` is how long the rotated-away * secret stays valid so a receiver can switch over: 0 retires it immediately, * omitting it uses the service default, and the ceiling stops an old key being * kept alive indefinitely. The body is optional, so a plain rotate with no body * takes the default overlap. */ declare const RotateWebhookSchema: z.ZodObject<{ overlapSeconds: z.ZodOptional; }, z.core.$strip>; type CreateWebhookInput = z.infer; type UpdateWebhookInput = z.infer; type RotateWebhookInput = z.infer; /** * User identity tables — PostgreSQL. * * Tables: users, accounts, sessions. * Moved verbatim from packages/nextly/src/database/schema/postgres.ts as part of * Plan A schemas consolidation. No behavior change. * * Cross-table `relations()` blocks live in `../_dialect-bundles/postgres.relations.ts` (split * out in Task 17 to keep table definitions free of sibling-feature imports). * Re-exported at the bottom of this file so consumers using * `import * as schema from "./postgres"` still see the relations in the * same namespace alongside the tables. * * @module schemas/users/postgres * @since v0.0.3-alpha (Plan A — schemas consolidation) */ declare const users: drizzle_orm_pg_core.PgTableWithColumns<{ name: "users"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "users"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; name: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "users"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; email: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "users"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; emailVerified: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "users"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; passwordUpdatedAt: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "users"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; image: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "users"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; passwordHash: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "users"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; isActive: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "users"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; mustChangePassword: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.PgBooleanBuilder, { name: string; tableName: "users"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; failedLoginAttempts: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "users"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lockedUntil: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "users"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "users"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"users", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "users"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const accounts: drizzle_orm_pg_core.PgTableWithColumns<{ name: "accounts"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.SetIsPrimaryKey, { name: string; tableName: "accounts"; dataType: "number int32"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; type: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; provider: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; providerAccountId: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; refresh_token: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; access_token: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expires_at: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "accounts"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; token_type: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; scope: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; id_token: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; session_state: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "accounts"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "accounts"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"accounts", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "accounts"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const sessions: drizzle_orm_pg_core.PgTableWithColumns<{ name: "sessions"; schema: undefined; columns: { sessionToken: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "sessions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "sessions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expires: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "sessions"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Auth-token tables — PostgreSQL. * * Tables: emailVerificationTokens, passwordResetTokens, refreshTokens. * Moved verbatim from packages/nextly/src/database/schema/postgres.ts as part * of Plan A schemas consolidation. No behavior change. * * Drizzle v2 relations for this feature live centrally in * `../_dialect-bundles/postgres.relations.ts` (defineRelations). * (`users`). Re-exported at the bottom so namespace consumers see them. * * @module schemas/auth-tokens/postgres * @since v0.0.3-alpha (Plan A — schemas consolidation) */ declare const passwordResetTokens: drizzle_orm_pg_core.PgTableWithColumns<{ name: "password_reset_tokens"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"password_reset_tokens", drizzle_orm_pg_core.SetIsPrimaryKey, { name: string; tableName: "password_reset_tokens"; dataType: "number int32"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; identifier: drizzle_orm_pg_core.PgBuildColumn<"password_reset_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "password_reset_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tokenHash: drizzle_orm_pg_core.PgBuildColumn<"password_reset_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "password_reset_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expires: drizzle_orm_pg_core.PgBuildColumn<"password_reset_tokens", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "password_reset_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; usedAt: drizzle_orm_pg_core.PgBuildColumn<"password_reset_tokens", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "password_reset_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"password_reset_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "password_reset_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const userInviteTokens: drizzle_orm_pg_core.PgTableWithColumns<{ name: "user_invite_tokens"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"user_invite_tokens", drizzle_orm_pg_core.SetIsPrimaryKey, { name: string; tableName: "user_invite_tokens"; dataType: "number int32"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"user_invite_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_invite_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tokenHash: drizzle_orm_pg_core.PgBuildColumn<"user_invite_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_invite_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expires: drizzle_orm_pg_core.PgBuildColumn<"user_invite_tokens", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "user_invite_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; usedAt: drizzle_orm_pg_core.PgBuildColumn<"user_invite_tokens", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "user_invite_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"user_invite_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_invite_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const emailVerificationTokens: drizzle_orm_pg_core.PgTableWithColumns<{ name: "email_verification_tokens"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"email_verification_tokens", drizzle_orm_pg_core.SetIsPrimaryKey, { name: string; tableName: "email_verification_tokens"; dataType: "number int32"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; identifier: drizzle_orm_pg_core.PgBuildColumn<"email_verification_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "email_verification_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tokenHash: drizzle_orm_pg_core.PgBuildColumn<"email_verification_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "email_verification_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expires: drizzle_orm_pg_core.PgBuildColumn<"email_verification_tokens", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "email_verification_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"email_verification_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "email_verification_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const refreshTokens: drizzle_orm_pg_core.PgTableWithColumns<{ name: "refresh_tokens"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"refresh_tokens", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "refresh_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"refresh_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "refresh_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tokenHash: drizzle_orm_pg_core.PgBuildColumn<"refresh_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "refresh_tokens"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userAgent: drizzle_orm_pg_core.PgBuildColumn<"refresh_tokens", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "refresh_tokens"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; ipAddress: drizzle_orm_pg_core.PgBuildColumn<"refresh_tokens", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "refresh_tokens"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expiresAt: drizzle_orm_pg_core.PgBuildColumn<"refresh_tokens", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "refresh_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"refresh_tokens", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "refresh_tokens"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * RBAC tables — PostgreSQL. * * Tables: roles, permissions, rolePermissions, userRoles, roleInherits, * userPermissionCache. * Moved verbatim from packages/nextly/src/database/schema/postgres.ts as part * of Plan A schemas consolidation. No behavior change. * * Drizzle v2 relations for this feature live centrally in * `../_dialect-bundles/postgres.relations.ts` (defineRelations). * imports (`users`, `apiKeys`). Re-exported at the bottom so namespace * consumers see them. * * The Zod RBAC validators (RoleSchema, PermissionSchema, etc.) live at * schemas/_zod/rbac.ts and are unrelated to this file. * * @module schemas/rbac/postgres * @since v0.0.3-alpha (Plan A — schemas consolidation) */ declare const roles: drizzle_orm_pg_core.PgTableWithColumns<{ name: "roles"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "roles"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; name: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "roles"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; slug: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "roles"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; description: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "roles"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; level: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "roles"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; isSystem: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "roles"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "roles"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"roles", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "roles"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const permissions: drizzle_orm_pg_core.PgTableWithColumns<{ name: "permissions"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; name: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; slug: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; action: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; resource: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; description: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; owner: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; orphanedAt: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "permissions"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; permissionGroup: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "permissions"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; danger: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.PgBooleanBuilder, { name: string; tableName: "permissions"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "permissions"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "permissions"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const rolePermissions: drizzle_orm_pg_core.PgTableWithColumns<{ name: "role_permissions"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"role_permissions", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "role_permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; roleId: drizzle_orm_pg_core.PgBuildColumn<"role_permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "role_permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; permissionId: drizzle_orm_pg_core.PgBuildColumn<"role_permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "role_permissions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"role_permissions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "role_permissions"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const userRoles: drizzle_orm_pg_core.PgTableWithColumns<{ name: "user_roles"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"user_roles", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "user_roles"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"user_roles", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_roles"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; roleId: drizzle_orm_pg_core.PgBuildColumn<"user_roles", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_roles"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"user_roles", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_roles"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expiresAt: drizzle_orm_pg_core.PgBuildColumn<"user_roles", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "user_roles"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const roleInherits: drizzle_orm_pg_core.PgTableWithColumns<{ name: "role_inherits"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"role_inherits", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "role_inherits"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; parentRoleId: drizzle_orm_pg_core.PgBuildColumn<"role_inherits", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "role_inherits"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; childRoleId: drizzle_orm_pg_core.PgBuildColumn<"role_inherits", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "role_inherits"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Permission cache table for denormalized permission storage. * * This table stores pre-computed permission check results to reduce * database queries and improve performance for permission checking. * * Cache Strategy: * - Tier 1: In-memory LRU cache (10k entries, 60s TTL) * - Tier 2: Database cache (this table, 24h TTL default) * - Tier 3: Fresh computation from RBAC tables * * Invalidation: * - By userId: When user's roles change * - By roleId: When role's permissions change (JSONB contains query) * - TTL expiration: Background cleanup job * * Performance: * - Cache hit: <5ms (indexed lookup) * - Target: 60%+ query reduction * - Target: 90%+ cache hit rate */ declare const userPermissionCache: drizzle_orm_pg_core.PgTableWithColumns<{ name: "user_permission_cache"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "user_permission_cache"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_permission_cache"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; action: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_permission_cache"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; resource: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_permission_cache"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; hasPermission: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "user_permission_cache"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; roleIds: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_permission_cache"; dataType: "object json"; data: string[]; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expiresAt: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "user_permission_cache"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"user_permission_cache", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "user_permission_cache"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Media tables — PostgreSQL. * * Tables: media, mediaFolders, imageSizes. * Moved verbatim from packages/nextly/src/database/schema/postgres.ts as part * of Plan A schemas consolidation. No behavior change. * * Drizzle v2 relations for this feature live centrally in * `../_dialect-bundles/postgres.relations.ts` (defineRelations). * cross-feature import. Re-exported at the bottom so namespace consumers * see them. * * @module schemas/media/postgres * @since v0.0.3-alpha (Plan A — schemas consolidation) */ /** * Media table for storing uploaded files and images * * Supports various storage backends (Vercel Blob, S3, R2, local filesystem) * Stores file metadata in database, actual files in configured storage * * @example * const media = await db.insert(media).values({ * filename: 'abc123.png', * originalFilename: 'profile-photo.png', * mimeType: 'image/png', * size: 102400, * width: 1920, * height: 1080, * url: 'https://blob.vercel-storage.com/abc123.png', * uploadedBy: userId, * }); */ declare const media: drizzle_orm_pg_core.PgTableWithColumns<{ name: "media"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetHasRuntimeDefault>>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; filename: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; originalFilename: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; mimeType: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; size: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "media"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; width: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "media"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; height: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "media"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; duration: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "media"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; url: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; thumbnailUrl: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; focalX: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "media"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; focalY: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "media"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; sizes: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "media"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; altText: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; caption: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tags: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetDimensions, 1>, { name: string; tableName: "media"; dataType: "string"; data: string[]; driverParam: string | string[]; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; folderId: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; uploadedBy: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "media"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; uploadedAt: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"media", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Media Folders table for organizing media files * * Supports nested folder hierarchy for better media organization. * Folders can contain subfolders and media files. * * @example * ```typescript * // Create a folder * await db.insert(mediaFolders).values({ * name: 'Product Images', * description: 'All product photos', * createdBy: userId, * }); * * // Create a subfolder * await db.insert(mediaFolders).values({ * name: 'Electronics', * parentId: productImagesId, * createdBy: userId, * }); * ``` */ declare const mediaFolders: drizzle_orm_pg_core.PgTableWithColumns<{ name: "media_folders"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"media_folders", drizzle_orm_pg_core.SetHasRuntimeDefault>>, { name: string; tableName: "media_folders"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; name: drizzle_orm_pg_core.PgBuildColumn<"media_folders", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media_folders"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; description: drizzle_orm_pg_core.PgBuildColumn<"media_folders", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "media_folders"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; parentId: drizzle_orm_pg_core.PgBuildColumn<"media_folders", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "media_folders"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdBy: drizzle_orm_pg_core.PgBuildColumn<"media_folders", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media_folders"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"media_folders", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media_folders"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"media_folders", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "media_folders"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Image Sizes table for named image size configurations. * * Stores configured image sizes (thumbnail, medium, large, etc.) that are * generated for every uploaded image. Supports both code-first (synced from * nextly.config.ts) and Visual (managed in admin Settings) approaches. * * @example * ```typescript * await db.insert(imageSizes).values({ * name: 'thumbnail', * width: 150, * height: 150, * fit: 'cover', * quality: 80, * format: 'webp', * }); * ``` */ declare const imageSizes: drizzle_orm_pg_core.PgTableWithColumns<{ name: "image_sizes"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetHasRuntimeDefault>>, { name: string; tableName: "image_sizes"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; name: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "image_sizes"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; width: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "image_sizes"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; height: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "image_sizes"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; fit: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetHasDefault>>, { name: string; tableName: "image_sizes"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; quality: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "image_sizes"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; format: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetHasDefault>>, { name: string; tableName: "image_sizes"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; isDefault: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "image_sizes"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; sortOrder: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "image_sizes"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "image_sizes"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"image_sizes", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "image_sizes"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Audit tables — PostgreSQL. * * Tables: auditLog, activityLog. * Moved verbatim from packages/nextly/src/database/schema/postgres.ts as part * of Plan A schemas consolidation. No behavior change. * * Drizzle v2 relations for this feature live centrally in * `../_dialect-bundles/postgres.relations.ts` (defineRelations). * cross-feature import. Re-exported at the bottom so namespace consumers * see it. * * @module schemas/audit/postgres * @since v0.0.3-alpha (Plan A — schemas consolidation) */ declare const auditLog: drizzle_orm_pg_core.PgTableWithColumns<{ name: "audit_log"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "audit_log"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; kind: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "audit_log"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; actorUserId: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "audit_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; targetUserId: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "audit_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; ipAddress: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "audit_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userAgent: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "audit_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; metadata: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "audit_log"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "audit_log"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; identityErasedAt: drizzle_orm_pg_core.PgBuildColumn<"audit_log", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "audit_log"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Activity log table for recording user actions across all collections. * * Used by the dashboard activity feed to show recent create/update/delete * operations. User name and email are denormalized to avoid JOINs on every * dashboard load. Entry title is a snapshot at action time. * * `user_id` carries NO foreign key, deliberately. It is an opaque historical * reference to whoever acted, and it has to outlive them: a cascade would let * the subject of an audit trail erase it by being deleted, and a restricting * constraint would make deleting an account that ever did anything fail * outright. The actor's identity is instead erased in place — * `eraseActorPersonalData` NULLs `user_name` / `user_email` and stamps * `identity_erased_at` — so the audit FACT survives while the personal data * does not. * * `user_name` / `user_email` are therefore nullable: NULL means erased, and * `identity_erased_at` records when, which is the evidence an erasure request * needs and which a bare NULL cannot supply. It times THIS ROW's erasure * rather than the account's deletion: for an entry erased by a deletion the * two coincide, because the erasure runs inside that transaction, and for one * written after the account was already gone nothing retains when that * deletion happened — so naming it for the deletion would put a number in an * audit field that no record supports. * * Retention: pruned on the schedule in `audit.retention.activityMaxAgeMs`, * 90 days by default. */ declare const activityLog: drizzle_orm_pg_core.PgTableWithColumns<{ name: "activity_log"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userName: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userEmail: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; action: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; collection: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; entryId: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; entryTitle: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; metadata: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "activity_log"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "activity_log"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; identityErasedAt: drizzle_orm_pg_core.PgBuildColumn<"activity_log", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "activity_log"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * nextly_meta runtime metadata table — PostgreSQL. * * Single table: nextlyMeta — runtime key/value flags table. * Used for state that doesn't belong in collection schemas. First consumer: * seed.completedAt / seed.skippedAt for the dashboard SeedDemoContentCard. * See migration 20260504_000000_nextly_meta.sql. * * Moved verbatim from packages/nextly/src/database/schema/postgres.ts as part * of Plan A schemas consolidation. No behavior change. * * @module schemas/nextly-meta/postgres * @since v0.0.3-alpha (Plan A — schemas consolidation) */ declare const nextlyMeta: drizzle_orm_pg_core.PgTableWithColumns<{ name: "nextly_meta"; schema: undefined; columns: { key: drizzle_orm_pg_core.PgBuildColumn<"nextly_meta", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "nextly_meta"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; value: drizzle_orm_pg_core.PgBuildColumn<"nextly_meta", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "nextly_meta"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_meta", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "nextly_meta"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Dialect-agnostic types for the `nextly_schema_events` table (spec §4.3). * * Replaces `nextly_migrations` (file ledger) and `nextly_migration_journal` * (apply audit) with a single events log. The pipeline (Plan C) writes rows * via SchemaEventsRepository; `nextly upgrade` (Plan B) backfills legacy rows. * * @module schemas/schema-events/types * @since v0.0.3-alpha (Plan B) */ /** What kind of schema change produced this row. */ type SchemaEventType = "file_apply" | "dev_push" | "ui_save" | "db_sync" | "core_apply"; /** Lifecycle state of an event row. */ type SchemaEventStatus = "in_progress" | "applied" | "failed" | "rolled_back" | "superseded"; /** Which surface triggered the event. */ type SchemaEventSource = "cli-migrate" | "dev-server" | "admin-ui" | "cli-sync" | "legacy-prebackfill"; /** Scope the event touched. */ type SchemaEventScopeKind = "collection" | "single" | "component" | "core" | "global"; declare const nextlySchemaEventsPg: drizzle_orm_pg_core.PgTableWithColumns<{ name: "nextly_schema_events"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.SetHasRuntimeDefault>>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; eventType: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.SetNotNull, SchemaEventType>>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: SchemaEventType; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; status: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.SetNotNull, SchemaEventStatus>>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: SchemaEventStatus; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; source: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.SetNotNull, SchemaEventSource>>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: SchemaEventSource; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; filename: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; sha256: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; scopeKind: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.Set$Type, SchemaEventScopeKind>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: SchemaEventScopeKind; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; scopeSlug: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; startedAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_schema_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; endedAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; durationMs: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; appliedBy: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; note: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; statementsPlanned: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; statementsExecuted: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; renamesApplied: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; errorCode: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; errorMessage: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; errorJson: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; supersededEventIds: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; supersededAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "nextly_schema_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; supersededBy: drizzle_orm_pg_core.PgBuildColumn<"nextly_schema_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_schema_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; declare const nextlyVersionsPg: drizzle_orm_pg_core.PgTableWithColumns<{ name: "nextly_versions"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetHasRuntimeDefault>>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; scopeKind: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull, VersionScopeKind>>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: VersionScopeKind; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; scopeSlug: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; entryId: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; versionNo: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_versions"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; status: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull, VersionStatus>>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: VersionStatus; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; isAutosave: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_versions"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; snapshot: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "nextly_versions"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; label: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; locale: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; sourceVersionNo: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_versions"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdBy: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_versions"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_versions"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_versions"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; revision: drizzle_orm_pg_core.PgBuildColumn<"nextly_versions", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_versions"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * API Keys table — PostgreSQL. * * Single table: apiKeys. * Moved verbatim from packages/nextly/src/database/schema/postgres.ts as part * of Plan A schemas consolidation. No behavior change. * * Drizzle v2 relations for this feature live centrally in * `../_dialect-bundles/postgres.relations.ts` (defineRelations). * (`users`, `roles`). Re-exported at the bottom so namespace consumers see it. * * @module schemas/api-keys/postgres * @since v0.0.3-alpha (Plan A — schemas consolidation) */ /** * API Keys table for programmatic API authentication. * * Security invariants: * - Raw key values are NEVER stored. Only the SHA-256 hex digest (keyHash) is persisted. * - The full key is generated and returned exactly once (on creation), then discarded. * - Lookups are performed by hashing the incoming key and querying by keyHash. * - SHA-256 is used instead of bcrypt because API keys are 256-bit random strings — * their entropy is the security guarantee, not the hash function. bcrypt's intentional * slowness (~100ms) would add unacceptable latency to every API request. This is the * same approach used by GitHub personal access tokens and Stripe API keys. * * Token types: * - "read-only" — resolves to creator's read-* permissions only * - "full-access" — resolves to creator's full permission set (at request time) * - "role-based" — resolves to the referenced role's permissions (at request time) * * Revocation: * - Keys are revoked by setting isActive = false (soft delete). Rows are never hard-deleted, * preserving the audit trail (name, type, creator, last-used). */ declare const apiKeys: drizzle_orm_pg_core.PgTableWithColumns<{ name: "api_keys"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; name: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; description: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; keyHash: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; keyPrefix: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; tokenType: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; roleId: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; userId: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "api_keys"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; expiresAt: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "api_keys"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastUsedAt: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "api_keys"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; isActive: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "api_keys"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "api_keys"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"api_keys", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "api_keys"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Webhook + event system tables — PostgreSQL. * * Three tables back the durable-outbox webhook system: * - `nextly_events` — the durable event ledger (outbox). One row per content * event; the JSON payload is the full delivery envelope. Also the substrate * the audit-log and workflow features reuse. * - `nextly_webhooks` — the endpoint registry (URL, subscribed events, filter, * hashed secret). Mirrors the api-keys security model (secret never stored * raw; only a hash + a display prefix). * - `nextly_webhook_deliveries` — the per-endpoint delivery ledger: retry * state, lease columns for concurrent drain workers, and an attempt log. * * Drizzle table objects flow through `getCoreSchema` and are created/reconciled * by the introspect-diff pipeline, so no hand-written migration is needed. * * @module schemas/webhooks/postgres */ /** * Durable event ledger (outbox). Rows are written inside the same transaction * as the content change, so an event can never be lost or fired for a * rolled-back change. `id` is the envelope id and doubles as the idempotency * key; it is the primary key, so uniqueness is enforced on every dialect. */ declare const nextlyEvents: drizzle_orm_pg_core.PgTableWithColumns<{ name: "nextly_events"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; type: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; resourceKind: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; resourceCollection: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; resourceId: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; payload: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "nextly_events"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; actorType: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; actorId: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; fannedOutAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "nextly_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; outcome: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.SetHasDefault>>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; retentionClass: drizzle_orm_pg_core.PgBuildColumn<"nextly_events", drizzle_orm_pg_core.SetHasDefault>>, { name: string; tableName: "nextly_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Outbound webhook endpoint registry. Secrets follow the api-keys pattern: * only the hash and a short display prefix are stored; the raw secret is shown * once at creation. `secretHash` is a JSON array of active-secret hashes so * zero-downtime rotation can be added later without a migration. */ declare const nextlyWebhooks: drizzle_orm_pg_core.PgTableWithColumns<{ name: "nextly_webhooks"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "nextly_webhooks"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; name: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhooks"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; url: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhooks"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; enabled: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "nextly_webhooks"; dataType: "boolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; eventTypes: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "nextly_webhooks"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; filter: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "nextly_webhooks"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; headers: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "nextly_webhooks"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; secretHash: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetNotNull, { name: string; tableName: "nextly_webhooks"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; secretPrefix: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhooks"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; fieldAllowlist: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "nextly_webhooks"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdBy: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_webhooks"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhooks"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhooks"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; deletedAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhooks", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "nextly_webhooks"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Per-endpoint delivery ledger. One row per (event, matching webhook). Carries * the retry state, a lease (`lockedBy`/`lockedUntil`) for concurrent drain * workers, and a JSON attempt log for observability. */ declare const nextlyWebhookDeliveries: drizzle_orm_pg_core.PgTableWithColumns<{ name: "nextly_webhook_deliveries"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.SetIsPrimaryKey>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; webhookId: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; eventId: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; status: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.SetHasDefault>>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; attemptCount: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.SetHasDefault>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; nextAttemptAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lockedBy: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lockedUntil: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgTimestampBuilder, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastStatusCode: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastLatencyMs: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgIntegerBuilder, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "number int32"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastError: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lastResponseSnippet: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; attempts: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.PgJsonbBuilder, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "object json"; data: unknown; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; createdAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updatedAt: drizzle_orm_pg_core.PgBuildColumn<"nextly_webhook_deliveries", drizzle_orm_pg_core.SetNotNull>, { name: string; tableName: "nextly_webhook_deliveries"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>; /** * Public schemas barrel for Nextly. * * Single canonical entry point for the framework's system table definitions. * Imported by every pipeline caller (boot-apply, db-sync, migrate, migrate:create) * and by user code that wants to query core tables directly. * * Public contract: * - getCoreSchema(dialect) → NextlySchemaSnapshot * - CORE_TABLE_NAMES: readonly string[] * - CORE_TABLE_PREFIXES: readonly string[] * - Named Drizzle table re-exports (users, accounts, roles, etc.) under their * canonical names. * * @module schemas * @since v0.0.3-alpha (Plan A — schemas consolidation) */ /** * Which field-group registry a particular database holds. * * 🔴 The core schema is a DESIRED shape, and a desired shape that names a table * the database does not have is an instruction to create it. The storage * migration renames the registry, so a caller holding a real database resolves * the name from the catalog and passes it here; omitting it keeps the legacy * spelling, which is correct for a fresh database and for every caller that has * no database to ask. * * Without this, reconciling a migrated database creates an EMPTY legacy * registry beside the populated migrated one — and every reader prefers the * legacy name when it is present, so the site's field groups silently vanish. */ interface CoreSchemaOptions { /** Defaults to the legacy spelling this release's DDL writes. */ fieldGroupRegistryTable?: string; } /** * Snake-case names of every core table the framework manages. * * Takes the same options as {@link getCoreSchema} for the same reason: the two * are read together — one names the tables to introspect, the other the shape to * compare them against — so a mismatch between them asks the database about a * table that is not there and then diffs the answer against one that is. */ declare function getCoreTableNames(options?: CoreSchemaOptions): string[]; /** * Canonical core schema snapshot for the given dialect. * * Consumed by every pipeline entry point (boot-apply, db:sync, migrate Phase 1, * migrate:check) to drive introspect-and-diff. * * @param dialect - the runtime dialect to compile the snapshot for * @param options - which field-group registry this database actually holds * @returns a frozen snapshot of all framework-managed tables for that dialect */ declare function getCoreSchema(dialect: SupportedDialect, options?: CoreSchemaOptions): NextlySchemaSnapshot; /** Snake-case names of every core table the framework manages. */ declare const CORE_TABLE_NAMES: readonly string[]; /** * Prefixes that identify managed user tables. * * Derived from the pipeline's own filter rather than restated, so the two * cannot disagree about what Nextly manages. They did: this list named three * prefixes while the filter named four, and a table the filter manages but this * list does not is one the CLI treats as foreign. */ declare const CORE_TABLE_PREFIXES: readonly string[]; export { CORE_TABLE_NAMES as C, DateRangeSchema as E, DeletePermissionSchema as G, DeleteRoleInheritanceSchema as J, DeleteRoleSchema as K, DeleteUserAccountSchema as N, DeleteUserResponseSchema as P, DeleteUserSchema as Q, ApiKeyTokenTypeSchema as a, SortSchema as a$, EmailSchema as a1, ErrorResponseSchema as a3, ExpiresInSchema as a5, FileUploadSchema as a8, PermissionListResponseSchema as aB, PermissionResourceSchema as aD, PermissionSchema as aE, PhoneSchema as aF, RemovePermissionFromRoleSchema as aH, RemoveRoleFromUserSchema as aJ, RoleInheritanceSchema as aL, RoleListResponseSchema as aN, RolePermissionListResponseSchema as aQ, RolePermissionSchema as aR, RoleSchema as aS, RotateWebhookSchema as aU, SYSTEM_RESOURCES as aV, SearchSchema as aX, SortOrderSchema as a_, GetPermissionByIdSchema as aa, GetRoleByIdSchema as ac, GetRolePermissionsSchema as ae, GetUserByIdSchema as ag, GetUserPermissionsSchema as ai, GetUserRolesSchema as ak, IdSchema as al, ImageUploadSchema as an, ListUsersSchema as aq, MinimalUserSchema as ar, PaginatedResponseSchema as as, PaginationSchema as au, PasswordSchema as av, PermissionActionSchema as ax, PermissionCheckResponseSchema as az, nextlySchemaEventsPg as b$, SuccessResponseSchema as b1, UI_FIELD_TYPES as b3, UnlinkAccountResponseSchema as b9, WebhookEventSubscriptionSchema as bA, WebhookEventTypeSchema as bB, accounts as bC, activityLog as bD, apiKeys as bE, auditLog as bF, buildDynamicFieldGroupsMysql as bG, buildDynamicFieldGroupsPg as bH, buildDynamicFieldGroupsSqlite as bI, dynamicCollectionsMysql as bJ, dynamicCollectionsPg as bK, dynamicCollectionsSqlite as bL, dynamicFieldGroupsMysql as bM, dynamicFieldGroupsPg as bN, dynamicFieldGroupsSqlite as bO, emailVerificationTokens as bP, getCoreSchema as bQ, getCoreTableNames as bR, imageSizes as bS, isBuiltInFieldType as bT, isReservedResourceSlug as bU, isSystemResource as bV, isValidResource as bW, media as bX, mediaFolders as bY, nextlyEvents as bZ, nextlyMeta as b_, UnlinkAccountSchema as ba, UpdateApiKeySchema as bc, UpdatePasswordSchema as be, UpdatePermissionSchema as bg, UpdateRoleSchema as bi, UpdateUserSchema as bk, UpdateWebhookSchema as bm, UrlSchema as bn, UserAccountSchema as bp, UserIdSchema as bq, UserListResponseSchema as bs, UserResponseSchema as bu, UserRoleListResponseSchema as bx, UserRoleSchema as by, ValidationErrorSchema as bz, AssignPermissionToRoleSchema as c, nextlyVersionsPg as c0, nextlyWebhookDeliveries as c1, nextlyWebhooks as c2, parseUiSchema as c3, passwordResetTokens as c4, permissionName as c5, permissionSlug as c6, permissions as c7, refreshTokens as c8, roleInherits as c9, rolePermissions as ca, roles as cb, sessions as cc, uiSchemaFieldSchema as cd, uiSchemaJsonSchema as ce, uiSchemaManifest as cf, userInviteTokens as cg, userPermissionCache as ch, userRoles as ci, users as cj, AssignRoleToUserSchema as e, BulkOperationResponseSchema as g, BulkOperationSchema as h, CORE_TABLE_PREFIXES as i, CheckUserPermissionSchema as k, CreateApiKeySchema as n, CreateLocalUserSchema as p, CreatePermissionSchema as r, CreateRoleInheritanceSchema as u, CreateRoleSchema as v, CreateUserWithPasswordSchema as x, CreateWebhookSchema as z }; export type { DynamicFieldGroupPg as $, ApiKeyTokenTypeEnum as A, BulkOperation as B, DateRange as D, DeletePermission as F, DeleteRole as H, DeleteRoleInheritance as I, DeleteUser as L, DeleteUserAccount as M, DeleteUserResponse as O, DynamicCollectionPg as R, DynamicCollectionInsertMysql as S, DynamicCollectionInsertPg as T, DynamicCollectionInsertSqlite as U, DynamicCollectionMysql as V, DynamicCollectionSqlite as W, DynamicFieldGroupInsertMysql as X, DynamicFieldGroupInsertPg as Y, DynamicFieldGroupInsertSqlite as Z, DynamicFieldGroupMysql as _, DynamicFieldGroupSqlite as a0, ErrorResponse as a2, ExpiresInEnum as a4, FieldNode as a6, FileUpload as a7, GetPermissionById as a9, PermissionListResponse as aA, PermissionResource as aC, RemovePermissionFromRole as aG, RemoveRoleFromUser as aI, RoleInheritance as aK, RoleListResponse as aM, RolePermission as aO, RolePermissionListResponse as aP, RotateWebhookInput as aT, Search as aW, Sort as aY, SortOrder as aZ, GetRoleById as ab, GetRolePermissions as ad, GetUserById as af, GetUserPermissions as ah, GetUserRoles as aj, ImageUpload as am, LegacyValidationError as ao, ListUsers as ap, Pagination as at, PermissionAction as aw, PermissionCheckResponse as ay, AssignPermissionToRole as b, SuccessResponse as b0, SystemResource as b2, UiSchemaEntity as b4, UiSchemaField as b5, UiSchemaManifest as b6, UnlinkAccount as b7, UnlinkAccountResponse as b8, UpdateApiKey as bb, UpdatePassword as bd, UpdatePermission as bf, UpdateRole as bh, UpdateUser as bj, UpdateWebhookInput as bl, UserAccount as bo, UserListResponse as br, UserResponse as bt, UserRole as bv, UserRoleListResponse as bw, SchemaEventType as ck, SchemaEventStatus as cl, SchemaEventSource as cm, SchemaEventScopeKind as cn, MinimalUser as co, PaginatedResponse as cp, Permission as cq, Role as cr, AssignRoleToUser as d, BulkOperationResponse as f, CheckUserPermission as j, CoreSchemaOptions as l, CreateApiKey as m, CreateLocalUser as o, CreatePermission as q, CreateRole as s, CreateRoleInheritance as t, CreateUserWithPassword as w, CreateWebhookInput as y };