import { Model, ModelInit, ModelSchema, PrimitiveProperty, Property, PropertyType, Relation } from "./types.js"; export declare const primitivePropertyPattern: RegExp; export declare const referencePropertyPattern: RegExp; export declare const relationPropertyPattern: RegExp; export declare class Config { #private; models: Model[]; static baseModels: { $models: Model; $versions: Model; }; static baseConfig: Config; static parse(init: ModelSchema, options?: { freeze?: boolean; }): Config; private static parseModel; private static parseProperty; static parseIndex: (index: string) => string[]; readonly primaryKeys: Record; readonly propertyNames: Record; relations: Relation[]; constructor(models: Model[], options?: { freeze?: boolean; }); freeze(): void; createModel(name: string, init: ModelInit): Model; deleteModel(name: string): void; addProperty(modelName: string, propertyName: string, propertyType: PropertyType): Property; removeProperty(modelName: string, propertyName: string): void; addIndex(modelName: string, index: string): string[]; removeIndex(modelName: string, index: string): void; equal(other: Config): boolean; static equalModel(a: Model, b: Model): boolean; static equalIndex: (a: string[], b: string[]) => boolean; static assertEqual(actual: Config, expected: Config): void; static assertEqualModel(actualModel: Model, expectedModel: Model): void; }