import { Condition, Expression, Table, Template } from '..'; export interface ConstraintConfig { name?: string; deferrable?: boolean; initially?: 'DEFERRED' | 'IMMEDIATE'; } export declare const CONSTRAINT: (template: Template, conf?: ConstraintConfig | undefined) => Template; export declare const NOT_NULL: (conf?: ConstraintConfig | undefined) => Template; export declare const NULL: (conf?: ConstraintConfig | undefined) => Template; export declare const CHECK: (expression: Condition, conf?: (ConstraintConfig & { noInherit?: boolean | undefined; }) | undefined) => Template; export declare const DEFAULT: (value: any, conf?: ConstraintConfig | undefined) => Template; export declare const GENERATED_AS: (type: 'ALWAYS' | 'BY DEFAULT', conf?: (ConstraintConfig & { expression?: import("..").AnyExpression, boolean, any>> | undefined; identity?: any; }) | undefined) => Template; export interface IndexParametersConfig { include?: string[]; with?: Record; using?: string; columns?: string[]; } export declare const UNIQUE: (params?: (IndexParametersConfig & ConstraintConfig) | undefined) => Template; export declare const PRIMARY_KEY: (params?: (IndexParametersConfig & ConstraintConfig) | undefined) => Template; declare type ReferentialAction = 'NO ACTION' | 'RESTRICT' | 'CASCADE' | 'SET NULL' | 'SET DEFAULT'; export interface ReferenceConfig { columns?: T; match?: 'PARTIAL' | 'SIMPLE' | 'FULL'; onDelete?: ReferentialAction; onUpdate?: ReferentialAction; } export declare const REFERENCES: (table: string | Table, conf?: (ReferenceConfig, boolean, any>>> & ConstraintConfig) | undefined) => Template; export declare const FOREIGN_KEY: (columns: (string | Expression)[], table: string | Table, conf?: (ReferenceConfig<(string | import("..").AnyExpression, boolean, any>>)[]> & ConstraintConfig) | undefined) => Template; declare type LikeOptions = 'COMMENTS' | 'CONSTRAINTS' | 'DEFAULTS' | 'GENERATED' | 'IDENTITY' | 'INDEXES' | 'STATISTICS' | 'STORAGE' | 'ALL'; export declare const LIKE: (table: string, options: { including?: LikeOptions[]; excluding?: LikeOptions[]; }) => Template; export {};