import { ElementRef, Injector, OnDestroy, Signal, WritableSignal } from '@angular/core';
import { RecursivePartial } from '@jscrpt/common';
import { Subscription } from 'rxjs';
import { SingleOrdering } from './singleOrdering.interface';
import { GridInitializer, GridPluginInstances, MetadataSelector, OrderingOptions, SimpleOrdering, TableGridMetadata } from '../../../interfaces';
import * as i0 from "@angular/core";
/**
 * Component used for single ordering, used for ordering using single column
 */
export declare class SingleOrderingComponent implements SingleOrdering, OnDestroy {
    /**
     * Current ordering value
     */
    protected orderingValue: WritableSignal<SimpleOrdering | undefined | null>;
    /**
     * Instance of injector used for DI
     */
    protected injector: Injector;
    /**
     * Instance of options
     */
    protected ɵoptions: OrderingOptions;
    /**
     * Metadata change subscription
     */
    protected metadataChangeSubscription: Subscription | undefined | null;
    /**
     * Grid initializer currently used
     */
    protected gridInitializer: GridInitializer<SimpleOrdering> | undefined | null;
    /**
     * Grid metadata selector currently used
     */
    protected metadataSelector: MetadataSelector<TableGridMetadata> | undefined | null;
    /**
     * @inheritdoc
     */
    get ordering(): Signal<SimpleOrdering | undefined | null>;
    /**
     * @inheritdoc
     */
    gridPlugins: GridPluginInstances | undefined | null;
    /**
     * @inheritdoc
     */
    get options(): OrderingOptions;
    set options(options: RecursivePartial<OrderingOptions>);
    /**
     * @inheritdoc
     */
    pluginElement: ElementRef<HTMLElement>;
    constructor(options?: RecursivePartial<OrderingOptions>);
    /**
     * Called when component is destroyed
     */
    ngOnDestroy(): void;
    /**
     * @inheritdoc
     */
    setOrdering(ordering: SimpleOrdering | undefined | null): void;
    /**
     * @inheritdoc
     */
    orderByColumn(columnId: string): void;
    /**
     * @inheritdoc
     */
    getCssClassesForColumn(columnId: string): string[];
    /**
     * @inheritdoc
     */
    initialize(force: boolean): Promise<void>;
    /**
     * @inheritdoc
     */
    initOptions(): void;
    /**
     * @inheritdoc
     */
    invalidateVisuals(): void;
    /**
     * Checks columns
     */
    protected checkColumns(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SingleOrderingComponent, [{ optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SingleOrderingComponent, "ng-single-ordering", never, {}, {}, never, never, true, never>;
}
//# sourceMappingURL=singleOrdering.component.d.ts.map