import type { Connection } from './Connection'; export type BeanState = 'new' | 'loaded' | 'dirty' | 'deleted'; /** * Base for all generated beans. Tracks dirty fields so DAO.save can issue minimal UPDATEs. */ export declare abstract class AbstractBean { protected _data: Record; protected _dirty: Set; protected _state: BeanState; /** Set by DAO when the bean is materialized; enables FK accessors to navigate. */ _connection?: Connection; /** Hydrate from a row returned by the DB. Resets dirty state. */ _hydrate(row: Record): void; _bindConnection(conn: Connection): void; protected _get(column: string): T; protected _set(column: string, value: unknown): void; /** Internal: snapshot of all current column values. */ _snapshot(): Record; /** Internal: only the columns that have been mutated since last hydrate. */ _dirtyDiff(): Record; _markDeleted(): void; _isDirty(): boolean; _isNew(): boolean; _isDeleted(): boolean; toJSON(): Record; }