/** * Timestamp column resolution — the single source of truth for "does this * table have created_at / updated_at", shared by every PHP generator. * * This MUST agree with the Go side (`SchemaOptions.HasCreatedAt` / * `HasUpdatedAt` in internal/schema/types.go), because the Go side is what * writes the migration. When the two disagree the failure is silent: the * column exists in the database and the model refuses to fill it (or the * reverse, and every insert dies on an unknown column). * * The rules, in Go's words: * - option absent → BOTH columns (the long-standing default) * - `timestamps: false` → neither * - `timestamps: true` → both * - object form → only the keys explicitly set to true * (a key absent from the map means that column is absent — this is the * one place where "unset" does NOT mean "default on", because naming the * map at all is the author declaring the columns individually) */ export interface TimestampColumns { createdAt: boolean; updatedAt: boolean; /** True when the model should carry `$timestamps = true`. */ any: boolean; } export declare function resolveTimestamps(options: { timestamps?: unknown; } | undefined | null): TimestampColumns;