import type { AbstractSqlModel, ConcatenateNode, ConcatenateWithSeparatorNode, Definition, TextTypeNodes, BooleanTypeNodes, ReferencedFieldNode, SelectQueryNode, NumberTypeNodes, UnknownTypeNodes, NullNode, SelectNode } from '@balena/abstract-sql-compiler'; export declare const optimizeSchema: (abstractSqlModel: AbstractSqlModel, { createCheckConstraints }?: { createCheckConstraints?: boolean | undefined; }) => AbstractSqlModel; export declare const generateAbstractSqlModel: (seModelPath: string | URL) => AbstractSqlModel; export declare const generateAbstractSqlModelFromSE: (seModel: string) => AbstractSqlModel; export declare const aliasTable: (abstractSqlModel: AbstractSqlModel, resourceName: string, toResourceName: string, definition?: Definition) => void; export declare const renameField: (abstractSqlModel: AbstractSqlModel, resourceName: string, path: string[], from: string, to: string) => void; export declare const renameResourceField: (abstractSql: AbstractSqlModel, resource: string, fromFieldName: string, toFieldName: string) => void; export declare const renameVarResourcesName: (abstractSql: AbstractSqlModel) => void; export declare const oneLineTrimSqlConcat: ([start, ...strings]: TemplateStringsArray, ...nodes: Array) => ConcatenateNode; export declare const splitStringParts: (field: TextTypeNodes, separator?: string) => ConcatenateNode; export declare const joinTextParts: (separator: string, ...parts: Array<[showPart: BooleanTypeNodes, partValue: TextTypeNodes]>) => ConcatenateWithSeparatorNode; export declare const joinTextPartsAndPrefix: (prefix: string, separator: string, ...parts: Array<[showPart: BooleanTypeNodes, partValue: TextTypeNodes]>) => ConcatenateNode | ConcatenateWithSeparatorNode; export declare const overrideFieldType: (abstractSqlModel: AbstractSqlModel, resourceName: string, fieldName: string, newFieldType: string) => void; export type AliasValidNodeType = ReferencedFieldNode | SelectQueryNode | NumberTypeNodes | BooleanTypeNodes | UnknownTypeNodes | NullNode; export declare const aliasFields: (abstractSqlModel: AbstractSqlModel, resourceName: string, aliases: Dictionary) => SelectNode[1];