/// <reference types="jquery" />
import { InitModelOf, LookupCall, LookupResult, LookupRow, StaticLookupCallModel } from '../index';
/**
 * Base class for lookup calls with static or local data. Implement the _data() and _dataToLookupRow()
 * functions to provide data for lookup calls. Results are resolved as a Promise, the delay
 * property controls how long it takes until the promise is resolved. You can set it to a higher value for testing purposes.
 */
export declare class StaticLookupCall<TKey> extends LookupCall<TKey> implements StaticLookupCallModel<TKey> {
    model: StaticLookupCallModel<TKey>;
    delay: number;
    data: any[];
    protected _deferred: JQuery.Deferred<LookupResult<TKey>>;
    constructor();
    protected _init(model: InitModelOf<this>): void;
    refreshData(data?: any[]): void;
    abort(): void;
    protected _getAll(): JQuery.Promise<LookupResult<TKey>>;
    protected _queryByAll(): void;
    protected _lookupRowsByAll(): LookupRow<TKey>[];
    protected _filterActiveLookupRow(dataRow: LookupRow<TKey>): boolean;
    protected _getByText(text: string): JQuery.Promise<LookupResult<TKey>>;
    protected _queryByText(text: string): void;
    protected _lookupRowsByText(text: string): LookupRow<TKey>[];
    _createSearchPattern(text: string): RegExp;
    protected _getByKey(key: TKey): JQuery.Promise<LookupResult<TKey>>;
    protected _queryByKey(key: TKey): void;
    protected _lookupRowByKey(key: TKey): LookupRow<TKey>;
    protected _getByRec(rec: TKey): JQuery.Promise<LookupResult<TKey>>;
    protected _queryByRec(rec: TKey): void;
    protected _lookupRowsByRec(rec: TKey): LookupRow<TKey>[];
    setDelay(delay: number): void;
    /**
     * Implement this function to convert a single data array into an instance of LookupRow.
     */
    protected _dataToLookupRow(data: any[], index?: number): LookupRow<TKey>;
    /**
     * Implement this function to provide static data.
     *
     * The result is expected to be a list of tuples. Each tuple will be converted to a lookup row via
     * {@link _dataToLookupRow}. The first three elements of each tuple have a predefined meaning and
     * are used by the lookup call (e.g. to filter rows by text). More elements can be added freely.
     *
     * - [0] = key
     * - [1] = text
     * - [2] = parentKey
     */
    protected _data(): any[];
}
//# sourceMappingURL=StaticLookupCall.d.ts.map