import { AfterViewInit, ElementRef, Injector, OnChanges, OnDestroy, OnInit, QueryList } from '@angular/core';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { MatPaginator } from '@angular/material/paginator';
import { MatSelectChange } from '@angular/material/select';
import { BreakpointObserver } from '@angular/cdk/layout';
import { OGridItemComponent } from './grid-item/o-grid-item.component';
import { OGridItemDirective } from './grid-item/o-grid-item.directive';
import { Subscription } from 'rxjs';
import { IGridItem } from '../../interfaces/o-grid-item.interface';
import { OGridComponentStateClass } from '../../services/state/o-grid-component-state.class';
import { OGridComponentStateService } from '../../services/state/o-grid-component-state.service';
import { OPermissions } from '../../types';
import { OGridPermissions } from '../../types/o-grid-permissions.type';
import { OQueryDataArgs } from '../../types/query-data-args.type';
import { SQLOrder } from '../../types/sql-order.type';
import { OFormComponent } from '../form/o-form.component';
import { AbstractOServiceComponent } from '../o-service-component.class';
import { OMatSort } from '../table/extensions/sort/o-mat-sort';
import { OQueryParams } from '../../types/query-params.type';
import * as i0 from "@angular/core";
export declare const DEFAULT_INPUTS_O_GRID: string[];
export declare class OGridComponent extends AbstractOServiceComponent<OGridComponentStateService> implements AfterViewInit, OnChanges, OnDestroy, OnInit {
    protected _queryRows: number;
    fixedHeader: boolean;
    showPageSize: boolean;
    showSort: boolean;
    showFooter: boolean;
    gridItemHeight: string;
    refreshButton: boolean;
    insertButton: boolean;
    insertButtonFloatable: boolean;
    showButtonsText: boolean;
    insertButtonPosition: 'top' | 'bottom';
    paginationControls: boolean;
    gutterSize: string;
    protected _quickFilterAppearance: MatFormFieldAppearance;
    get cols(): number;
    set cols(value: number);
    get sortableColumns(): SQLOrder[];
    set sortableColumns(val: SQLOrder[]);
    quickFilterColumns: string;
    inputGridItems: QueryList<OGridItemComponent>;
    gridItemDirectives: QueryList<OGridItemDirective>;
    matpaginator: MatPaginator;
    protected _sortableColumns: SQLOrder[];
    sortColumnOrder: SQLOrder;
    protected _cols: any;
    protected _colsDefault: number;
    _pageSizeOptions: number[];
    protected sortColumn: string;
    storePaginationState: boolean;
    set gridItems(value: IGridItem[]);
    get gridItems(): IGridItem[];
    protected _gridItems: IGridItem[];
    protected subscription: Subscription;
    protected media: BreakpointObserver;
    protected oMatSort: OMatSort;
    protected permissions: OGridPermissions;
    protected actionsPermissions: OPermissions[];
    constructor(injector: Injector, elRef: ElementRef, form: OFormComponent);
    get state(): OGridComponentStateClass;
    ngOnInit(): void;
    initialize(): void;
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    subscribeToMediaChanges(): void;
    reloadData(): void;
    reloadPaginatedDataFromStart(): void;
    protected getSortedDataFromArray(dataArray: any[]): any[];
    registerGridItemDirective(item: OGridItemDirective): void;
    onItemDetailClick(item: OGridItemDirective): void;
    onItemDetailDblClick(item: OGridItemDirective): void;
    ngOnDestroy(): void;
    destroy(): void;
    loadMore(): void;
    getQueryArguments(filter: object, ovrrArgs?: OQueryDataArgs): OQueryParams;
    parseSortColumn(): void;
    get currentOrderColumn(): number;
    set currentOrderColumn(val: number);
    protected findSortableColumnIndex(sortableColumn: SQLOrder): number;
    getDataToStore(): any;
    getSortOptionText(col: SQLOrder): string;
    add(): void;
    protected parseResponseArray(data: any[], replace?: boolean): any[];
    protected saveDataNavigationInLocalStorage(): void;
    protected setGridItemDirectivesData(): void;
    pageSizeChanged(): void;
    sortColumnChanged(event: MatSelectChange): void;
    registerQuickFilter(arg: any): void;
    protected getPaginationDataFromArray(dataArray: any[]): any[];
    static ɵfac: i0.ɵɵFactoryDeclaration<OGridComponent, [null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OGridComponent, "o-grid", never, { "cols": { "alias": "cols"; "required": false; }; "showPageSize": { "alias": "show-page-size"; "required": false; }; "showSort": { "alias": "orderable"; "required": false; }; "sortableColumns": { "alias": "sortable-columns"; "required": false; }; "sortColumn": { "alias": "sort-column"; "required": false; }; "quickFilterColumns": { "alias": "quick-filter-columns"; "required": false; }; "gridItemHeight": { "alias": "grid-item-height"; "required": false; }; "refreshButton": { "alias": "refresh-button"; "required": false; }; "gutterSize": { "alias": "gutter-size"; "required": false; }; "fixedHeader": { "alias": "fixed-header"; "required": false; }; "showFooter": { "alias": "show-footer"; "required": false; }; "insertButtonPosition": { "alias": "insert-button-position"; "required": false; }; "insertButtonFloatable": { "alias": "insert-button-floatable"; "required": false; }; "showButtonsText": { "alias": "show-buttons-text"; "required": false; }; }, {}, ["inputGridItems"], ["[o-grid-toolbar][position=start]", "[o-grid-toolbar][position=end]", "[o-grid-toolbar]"], true, never>;
}
