import { type ValidateFunc } from "@kubernetes-models/validate";
import { type TypeMeta } from "./meta.js";
export type ModelData<T> = T extends TypeMeta ? Omit<T, keyof TypeMeta> : T;
export type ModelConstructor<T> = new (data?: ModelData<T>) => Model<T>;
export declare class Model<T> {
    constructor(data?: ModelData<T>);
    protected setDefinedProps(data?: ModelData<T>): void;
    toJSON(): unknown;
    validate(): void;
}
export declare function setValidateFunc<T>(ctor: ModelConstructor<T>, fn: ValidateFunc<T>): void;
