import { Injector, OnDestroy } from '@angular/core';
import { Router } from '@angular/router';
import { Subscription } from 'rxjs';
import { ServiceResponse } from '../../../interfaces/service-response.interface';
import { OFormLayoutManagerBase } from '../../../layouts/form-layout/o-form-layout-manager-base.class';
import { BaseService } from '../../../services/base-service.class';
import { NavigationService } from '../../../services/navigation.service';
import { OQueryParams } from '../../../types/query-params.type';
import { OFormBase } from '../o-form-base.class';
import { OFormNavigationClass } from './o-form.navigation.class';
import * as i0 from "@angular/core";
export type QueryConfiguration = {
    serviceType: string;
    queryArguments: OQueryParams;
    entity: string;
    service: string;
    queryMethod: string;
    totalRecordsNumber: number;
    queryRows: number;
    queryRecordOffset: number;
};
export declare class OFormNavigationComponent implements OnDestroy {
    protected injector: Injector;
    private _form;
    private router;
    navigationData: Array<any>;
    private _currentIndex;
    protected formNavigation: OFormNavigationClass;
    protected navigationService: NavigationService;
    protected formLayoutManager: OFormLayoutManagerBase;
    protected querySubscription: Subscription;
    protected dataService: BaseService<ServiceResponse>;
    protected queryConf: QueryConfiguration;
    constructor(injector: Injector, _form: OFormBase, router: Router);
    configureService(): void;
    getQueryArguments(offset: number, length: number): OQueryParams;
    protected queryNavigationData(offset: number, length?: number): Promise<void>;
    ngOnDestroy(): void;
    protected getKeysArray(): string[];
    getCurrentIndex(): number;
    next(): void;
    previous(): void;
    first(): void;
    last(): void;
    private moveToLast;
    isFirst(): boolean;
    isLast(): boolean;
    move(index: number): void;
    private moveWithoutManager;
    private moveInFormLayoutManager;
    getRouteOfSelectedRow(item: any): any[];
    showNavigation(): boolean;
    set currentIndex(arg: number);
    get currentIndex(): number;
    getRecordIndex(): number;
    getTotalRecordsNumber(): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<OFormNavigationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OFormNavigationComponent, "o-form-navigation", never, {}, {}, never, never, true, never>;
}
