/// <reference types="node" />
/// <reference types="react" />
import { BaseSelfControl } from './BaseSelfControl';
import { IControlSimulateKey } from '../Page/Events';
export declare class SelfString extends BaseSelfControl<string, string, string, HTMLInputElement> {
    #private;
    minLength: number | undefined;
    maxLength: number | undefined;
    private validateNormal;
    private validateRequired;
    private validateMinLength;
    private validateMaxLength;
    isValueEmpty: () => boolean;
    isValueNotEmpty: () => boolean;
    validate: () => void;
    cleaningClassInitializer: () => void;
    refreshHasChange: () => void;
    restartDefaultValue: () => void;
    get value(): string;
    set value(value: string);
    setValue: (value: string) => void;
    deserialize: (value: string) => void;
    useAsFilter: boolean;
    timer?: NodeJS.Timeout | null;
    triggerChangeFilters?: () => void;
    constructor(value: string);
    static empty(): SelfString;
    static deserialize(value?: string): SelfString;
}
export interface INewPropertiesStringN {
    propertyName: string;
    onChangePropertyName: string | undefined;
    controlRef: React.RefObject<HTMLInputElement>;
    caption: string;
    showHasChangeFlag: boolean;
    maxLength: number | undefined;
    onErrorSimulateKey?: IControlSimulateKey;
}
export declare class SelfStringN extends BaseSelfControl<string | null, string | null, string | null, HTMLInputElement> {
    #private;
    private validateNormal;
    private validateRequired;
    private validateMinLength;
    private validateMaxLength;
    isValueEmpty: () => boolean;
    isValueNotEmpty: () => boolean;
    validate: () => void;
    cleaningClassInitializer: () => void;
    refreshHasChange: () => void;
    restartDefaultValue: () => void;
    get value(): any;
    set value(value: any);
    setValue: (value: string | null) => void;
    deserialize: (value: string | null) => void;
    private _properties?;
    get properties(): INewPropertiesStringN;
    set properties(value: INewPropertiesStringN);
    constructor(value: string | null);
    static empty(value?: string): SelfStringN;
    static deserialize(value?: string): SelfStringN;
    static createCopy(old: SelfStringN): SelfStringN;
}
