import * as commonModule from './common';
import { Color } from '@nativescript/core';
import { AutoCompleteDisplayMode } from 'nativescript-ui-autocomplete';
export * from './common';
declare class TKDataFormCustomEditorDelegateImplementation extends NSObject implements TKDataFormCustomEditorDelegate {
    static ObjCProtocols: {
        prototype: TKDataFormCustomEditorDelegate;
    }[];
    static new(): TKDataFormCustomEditorDelegateImplementation;
    private _owner;
    initWithOwner(owner: CustomPropertyEditor): TKDataFormCustomEditorDelegateImplementation;
    editorWillCreateView(editor: TKDataFormCustomEditor): UIView;
    editorShouldApplyValueEditorView(editor: TKDataFormCustomEditor, value: NSObject, view: UIView): void;
    editorWillReturnValueEditorView(editor: TKDataFormCustomEditor, view: UIView): NSObject;
}
export declare class RadDataForm extends commonModule.RadDataForm {
    private _nativeDelegate;
    private _dataSource;
    private _initialized;
    _validateResolve: any;
    _commitResolve: any;
    _ngKey: any;
    private _ios;
    constructor();
    createNativeView(): TKDataForm;
    initNativeView(): void;
    disposeNativeView(): void;
    private isEnabledChanged;
    onUnloaded(): void;
    notifyValidated(propertyName: string, result: boolean): void;
    get editedObject(): string;
    private _reset;
    _applyGroupTitleStyle(groupView: TKEntityPropertyGroupView, titleStyle: commonModule.GroupTitleStyle): void;
    _updateGroupLayout(propertyGroup: any, nativeGroup: any): void;
    private onGroupPropertyChanged;
    private _onLayoutPropertyChanged;
    private _updateLayout;
    private getNativeGroup;
    private onGroupTitleStylePropertyChanged;
    private _onGroupLayoutPropertyChanged;
    private onPropertyPropertyChanged;
    private _initDataForm;
    _createPropertyFromNative(nativeProperty: TKEntityProperty): EntityProperty;
    private _updateNativeProperty;
    protected _onSourcePropertyChanged(oldValue: any, newValue: any): void;
    protected _onMetadataPropertyChanged(oldValue: any, newValue: any): void;
    protected _onIsReadOnlyPropertyChanged(oldValue: boolean, newValue: boolean): void;
    protected _onCommitModePropertyChanged(oldValue: commonModule.DataFormCommitMode, newValue: commonModule.DataFormCommitMode): void;
    protected _onValidationModePropertyChanged(oldValue: commonModule.DataFormValidationMode, newValue: commonModule.DataFormValidationMode): void;
    protected _onGroupsPropertyChanged(oldValue: Array<PropertyGroup>, newValue: Array<PropertyGroup>): void;
    validateAll(): Promise<Boolean>;
    validateAndCommitAll(): Promise<Boolean>;
    commitAll(): void;
    reload(): void;
    hasValidationErrors(): boolean;
    static getFontWithProperties(fontName: string, size: number, style: commonModule.DataFormFontStyle): UIFont;
}
export declare class PropertyGroup extends commonModule.PropertyGroup {
    constructor();
    protected onNameChanged(oldValue: string, newValue: string): void;
    protected onHiddenChanged(oldValue: boolean, newValue: boolean): void;
    protected onCollapsibleChanged(oldValue: boolean, newValue: boolean): void;
    protected onTitleStyleChanged(oldValue: commonModule.GroupTitleStyle, newValue: commonModule.GroupTitleStyle): void;
    protected onPropertiesChanged(oldValue: Array<EntityProperty>, newValue: Array<EntityProperty>): void;
}
export declare class EntityProperty extends commonModule.EntityProperty {
    private _shouldSkipEditorUpdate;
    private _ios;
    get ios(): TKEntityProperty;
    get isValid(): boolean;
    get value(): any;
    get valueCandidate(): any;
    constructor();
    _linkPropertyWithNative(value: TKEntityProperty): void;
    _updateNativeEditor(nativeEditor: TKDataFormEditor): void;
    _createEditorFromNative(nativeEditor: any): void;
    private _onNativeSet;
    protected onEditorTypeChanged(): void;
    protected updateNativeEditorParams(value: commonModule.PropertyEditor): void;
    protected updateNativeEditor(value: commonModule.PropertyEditor): void;
    protected updateNativeValidators(value: Array<commonModule.PropertyValidator>): void;
    protected updateNativeValuesProvider(value: Array<any>): void;
    protected updateNativeAutoCompleteDisplayMode(value: AutoCompleteDisplayMode): void;
    protected updateNativeImageResource(value: any): void;
    protected updateNativeDisplayName(value: string): void;
    protected updateNativeIndex(value: number): void;
    protected updateNativeConverter(value: commonModule.PropertyConverter): void;
    protected updateNativeColumnIndex(value: number): void;
    protected updateNativeHidden(value: boolean): void;
    protected updateNativeReadOnly(value: boolean): void;
    protected updateNativeRequired(value: boolean): void;
    protected updateNativeHintText(value: string): void;
}
export declare class DataFormEditorLabel extends commonModule.DataFormEditorLabel {
    private _ios;
    private _editor;
    get ios(): TKLabel;
    constructor(editor: commonModule.PropertyEditor);
    createNativeView(): TKLabel;
    disposeNativeView(): void;
}
export declare class DataFormEditorCore extends commonModule.DataFormEditorCore {
    _ios: TKDataFormEditorView;
    _editor: commonModule.PropertyEditor;
    get ios(): TKDataFormEditorView;
    constructor(editor: commonModule.PropertyEditor);
    createNativeView(): TKDataFormEditorView;
}
export declare class PropertyEditor extends commonModule.PropertyEditor {
    private _label;
    private _editorCore;
    private _ios;
    private _editorClass;
    get ios(): TKDataFormEditor;
    set ios(value: TKDataFormEditor);
    get label(): DataFormEditorLabel;
    get editorCore(): DataFormEditorCore;
    get editorClass(): any;
    createNativeView(): Object;
    protected onStylePropertyChanged(propertyName: String): void;
    protected onParamsChanged(oldValue: commonModule.PropertyEditorParams, newValue: commonModule.PropertyEditorParams): void;
    protected onParamsPropertyChanged(propertyName: String): void;
    protected onTypeChanged(oldValue: commonModule.DataFormEditorType, newValue: commonModule.DataFormEditorType): void;
    private _updateEditorClass;
    static _getNativeEditorType(nativeEditor: any): commonModule.DataFormEditorType;
}
export declare class CustomPropertyEditor extends commonModule.CustomPropertyEditor {
    _nativeDelegate: TKDataFormCustomEditorDelegateImplementation;
    private _label;
    private _editorCore;
    private _ios;
    private _editorClass;
    get ios(): TKDataFormCustomEditor;
    set ios(value: TKDataFormCustomEditor);
    get label(): DataFormEditorLabel;
    get editorCore(): DataFormEditorCore;
    get editorClass(): any;
    protected onStylePropertyChanged(propertyName: String): void;
    protected onParamsChanged(oldValue: commonModule.PropertyEditorParams, newValue: commonModule.PropertyEditorParams): void;
    protected onParamsPropertyChanged(propertyName: String): void;
    protected onTypeChanged(oldValue: commonModule.DataFormEditorType, newValue: commonModule.DataFormEditorType): void;
    constructor();
    notifyValueChanged(): void;
}
export declare class PropertyEditorHelper {
    static _linkEditorWithNative(editor: commonModule.PropertyEditor, value: TKDataFormEditor): void;
    static _onNativeSet(editor: commonModule.PropertyEditor): void;
    static _updateLabelTextColor(editor: any, labelTextColor: any): void;
    static _updateLabelFont(editor: any, labelFontName: any, labelTextSize: any, labelFontStyle: any): void;
    static _updateLabelOffset(editor: any, labelHorizontalOffset: any, labelVerticalOffset: any): void;
    static _updateEditorOffset(editor: any, editorHorizontalOffset: any, editorVerticalOffset: any): void;
    static _updateEditorFillColor(editor: any, editorFillColor: any): void;
    static _updateEditorStroke(editor: any, editorStrokeColor: any, editorStrokeWidth: any): void;
    static _updateLabelHidden(editor: any, labelHidden: any): void;
    static _updateLabelPosition(editor: any, labelPosition: commonModule.DataFormLabelPosition): void;
    static _updateLabelWidth(editor: any, labelWidth: any): void;
    static _updateSeparatorColor(editor: any, separatorColor: Color): void;
    static _applyParams(editor: any): void;
    static _updateNativeRange(editor: commonModule.PropertyEditor, range: TKRange): void;
    static _updateNativeStep(editor: commonModule.PropertyEditor, step: any): void;
    static applyStyle(editor: commonModule.PropertyEditor): void;
    static setNeedsDisplay(editor: commonModule.PropertyEditor): void;
    static setNeedsLayout(editor: commonModule.PropertyEditor): void;
    static applyStyleForProperty(editor: commonModule.PropertyEditor, propertyName: String): void;
}
export declare class PropertyValidator extends commonModule.PropertyValidator {
    private _ios;
    private _nativeDelegate;
    get ios(): TKDataFormManualValidator;
    constructor();
    validate(value: any, propertyName: string): boolean;
}
export declare class MinimumLengthValidator extends commonModule.MinimumLengthValidator {
    private _ios;
    get ios(): TKDataFormMinimumLengthValidator;
    constructor();
    protected onLengthChanged(oldValue: number, newValue: number): void;
}
export declare class MaximumLengthValidator extends commonModule.MaximumLengthValidator {
    private _ios;
    get ios(): TKDataFormMaximumLengthValidator;
    constructor();
    protected onLengthChanged(oldValue: number, newValue: number): void;
}
export declare class EmailValidator extends commonModule.EmailValidator {
    private _ios;
    get ios(): TKDataFormEmailValidator;
    constructor();
}
export declare class NonEmptyValidator extends commonModule.NonEmptyValidator {
    private _ios;
    get ios(): TKDataFormNonEmptyValidator;
    constructor();
}
export declare class RangeValidator extends commonModule.RangeValidator {
    private _ios;
    get ios(): TKDataFormRangeValidator;
    constructor();
    protected onMinimumChanged(oldValue: number, newValue: number): void;
    protected onMaximumChanged(oldValue: number, newValue: number): void;
}
export declare class PhoneValidator extends commonModule.PhoneValidator {
    private _ios;
    get ios(): TKDataFormPhoneValidator;
    constructor();
}
export declare class RegExValidator extends commonModule.RegExValidator {
    private _ios;
    get ios(): TKDataFormRegExValidator;
    constructor();
    protected onRegExChanged(oldValue: string, newValue: string): void;
}
export declare class IsTrueValidator extends commonModule.IsTrueValidator {
    private _ios;
    get ios(): TKDataFormIsTrueValidator;
    constructor();
}
export declare class StringToDateConverter extends commonModule.StringToDateConverter {
    private _ios;
    get ios(): TKDataFormStringToDateConverter;
    constructor();
}
export declare class StringToTimeConverter extends commonModule.StringToTimeConverter {
    private _ios;
    get ios(): TKDataFormStringToTimeConverter;
    constructor();
}
