import { BaseSelfControl } from './BaseSelfControl';
export interface IObject {
    id: number;
}
export interface IObjectJson {
    id: number;
}
export declare class SelfObject<V extends IObject, J extends IObjectJson> extends BaseSelfControl<V, J, number, HTMLInputElement> {
    #private;
    private _deserialize;
    private validateNormal;
    private validateRequired;
    isValueEmpty: () => boolean;
    isValueNotEmpty: () => boolean;
    validate: () => void;
    cleaningClassInitializer: () => void;
    refreshHasChange: () => void;
    restartDefaultValue: () => void;
    get value(): V;
    set value(value: V);
    setValue: (value: V) => void;
    deserialize: (value: J) => void;
    constructor(_deserialize: (json?: J) => V, value: V);
    static empty<V extends IObject, J extends IObjectJson>(deserialize: (json?: J) => V): SelfObject<V, J>;
}
