/// <reference types="jquery" />
import { CloneOptions, FormField, HtmlComponent, InitModelOf, LoadingSupport, LogicalGrid, LogicalGridLayoutConfig, LookupCall, LookupCallOrModel, LookupResult, LookupRow, ObjectOrChildModel, ObjectOrModel, PropertyChangeEvent, RadioButton, RadioButtonGroupEventMap, RadioButtonGroupLayout, RadioButtonGroupModel, Status, ValueField } from '../../../index';
export declare class RadioButtonGroup<TValue> extends ValueField<TValue> implements RadioButtonGroupModel<TValue> {
    model: RadioButtonGroupModel<TValue>;
    eventMap: RadioButtonGroupEventMap<TValue>;
    self: RadioButtonGroup<any>;
    layoutConfig: LogicalGridLayoutConfig;
    fields: FormField[];
    radioButtons: RadioButton<TValue>[];
    gridColumnCount: number;
    selectedButton: RadioButton<TValue>;
    lookupStatus: Status;
    lookupCall: LookupCall<TValue>;
    htmlBody: HtmlComponent;
    $body: JQuery;
    protected _lookupExecuted: boolean;
    protected _selectButtonLocked: boolean;
    protected _lookupInProgress: boolean;
    protected _currentLookupCall: LookupCall<TValue>;
    protected _buttonPropertyChangeHandler: (event: PropertyChangeEvent<any, RadioButton<TValue>>) => void;
    constructor();
    static DEFAULT_GRID_COLUMN_COUNT: number;
    static ErrorCode: {
        readonly NO_DATA: 1;
    };
    protected _init(model: InitModelOf<this>): void;
    protected _initValue(value: TValue): void;
    protected _initKeyStrokeContext(): void;
    protected _initButtons(): void;
    protected _initButton(button: RadioButton<TValue>): void;
    protected _render(): void;
    protected _renderProperties(): void;
    protected _createBodyLayout(): RadioButtonGroupLayout;
    protected _setLogicalGrid(logicalGrid: LogicalGrid | string): void;
    invalidateLogicalGrid(invalidateLayout?: boolean): void;
    setLayoutConfig(layoutConfig: ObjectOrModel<LogicalGridLayoutConfig>): void;
    protected _setLayoutConfig(layoutConfig: ObjectOrModel<LogicalGridLayoutConfig>): void;
    protected _renderLayoutConfig(): void;
    isClearable(): boolean;
    getFields(): FormField[];
    getFocusableElement(): HTMLElement | JQuery;
    setFields(fields: ObjectOrChildModel<FormField>[]): void;
    protected _setFields(fields: FormField[]): void;
    protected _renderFields(): void;
    protected _renderEnabled(): void;
    /**
     * Set the selected (or first if none is selected) to tabbable
     */
    protected _provideTabIndex(): void;
    setGridColumnCount(gridColumnCount: number): void;
    protected _setGridColumnCount(gridColumnCount: number): boolean;
    protected _calcDefaultGridColumnCount(): number;
    getButtonForRadioValue(radioValue: TValue): RadioButton<TValue>;
    /**
     * Search and then select the button with the corresponding radioValue
     */
    protected _validateValue(value: TValue): TValue;
    protected _valueChanged(): void;
    selectFirstButton(): void;
    selectLastButton(): void;
    selectButtonByIndex(index: number): void;
    selectButton(radioButton: RadioButton<TValue>): void;
    getTabbableButton(): RadioButton<TValue>;
    insertButton(radioButton: RadioButton<TValue>): void;
    protected _onButtonPropertyChange(event: PropertyChangeEvent<any, RadioButton<TValue>>): void;
    setLookupCall(lookupCall: LookupCallOrModel<TValue>): void;
    protected _setLookupCall(lookupCall: LookupCallOrModel<TValue>): void;
    /**
     * @returns true if a lookup call execution has been scheduled now. false otherwise.
     */
    protected _ensureLookupCallExecuted(): boolean;
    protected _createLoadingSupport(): LoadingSupport;
    protected _lookupByAll(): JQuery.Promise<LookupResult<TValue>>;
    /**
     * A wrapper function around lookup calls used to set the _lookupInProgress flag, and display the state in the UI.
     */
    protected _executeLookup(lookupCall: LookupCall<TValue>, abortExisting: boolean): JQuery.Promise<LookupResult<TValue>>;
    protected _lookupByAllDone(result: LookupResult<TValue>): void;
    protected _populateRadioButtonGroup(result: LookupResult<TValue>): void;
    protected _clearLookupStatus(): void;
    setLookupStatus(lookupStatus: Status): void;
    protected _errorStatus(): Status;
    protected _createLookupRowRadioButton(lookupRow: LookupRow<TValue>): RadioButton<TValue>;
    clone(model: RadioButtonGroupModel<TValue>, options?: CloneOptions): this;
}
//# sourceMappingURL=RadioButtonGroup.d.ts.map