import FilteredActions from '../actions/filtered-actions';
import type { ActionsNS } from '../actions/namespace';
import FormPayload from '../form/definitions/form-payload';
import FormLayout from '../form/definitions/layout';
import TableColumns from '../table/definitions/columns';
import TableFilterRow from '../table/definitions/filterrow';
import TableRows from '../table/definitions/rows';
import { DfTable } from '../table/namespace';
import { APIConsumer } from './namespace';
type IHandlers = ActionsNS.IHandlers;
declare abstract class ConsumerLogicBase implements APIConsumer.ConsumerLogicBaseInterface {
    pkName: string;
    protected fields: {
        [key: string]: DfTable.ColumnJSON;
    };
    protected tableColumns: TableColumns;
    protected loading: boolean;
    protected responsiveTableLayouts?: DfTable.ResponsiveTableLayoutsDefinition;
    protected formFields: {
        [key: string]: unknown;
    };
    protected formLayout: FormLayout | null;
    protected formComponent: string;
    protected errors: {
        [key: string]: unknown;
    };
    protected actions: FilteredActions;
    protected ux_def: APIConsumer.TableUXDefinition;
    protected rows: TableRows;
    protected formData: FormPayload;
    protected requestedPKValue: null;
    protected ordering: {
        parameter: string;
        style: string | undefined;
        counter: number;
    };
    protected filterDefinition: TableFilterRow | null;
    filterData: Object;
    protected titles: APIConsumer.Titles;
    protected dialogHandlers?: IHandlers;
    protected rowSelect: boolean;
    protected constructor();
    get tableDefinition(): {
        title: string;
        pkName: string;
        columns: TableColumns;
        responsiveTableLayouts: DfTable.ResponsiveTableLayoutsDefinition | undefined;
        columnDefs: {
            [key: string]: DfTable.ColumnJSON;
        };
        rows: TableRows;
        loading: boolean;
        actions: FilteredActions;
        filterDefinition: TableFilterRow | null;
        rowSelect: boolean;
    };
    get pkValue(): any;
    setDialogHandlers: (handlers?: IHandlers) => void;
    /** @virtual */
    processUXDefinition(UXDefinition: APIConsumer.TableUXDefinition): void;
    abstract getFormDefinition(pkValue?: APIConsumer.PKValueType): Promise<APIConsumer.FormDefinition>;
    get formDefinition(): APIConsumer.FormDefinition;
    title(which: 'table' | 'new' | 'edit'): string;
    setOrdering(parameter: string, style: any | null, counter: number): void;
    filter(filterData?: Object | null): Promise<void>;
    abstract reload(filter?: boolean): Promise<void>;
    abstract dialogForm(pk: APIConsumer.PKValueType, formData?: any, refresh?: boolean, return_raw_data?: boolean): Promise<any>;
    abstract deleteRow(tableRow: FormPayload): Promise<void>;
}
export default ConsumerLogicBase;
//# sourceMappingURL=consumer-logic-base.d.ts.map