import { OnDestroy } from '@angular/core';
import { CacTableComponent } from '../table.component';
import * as i0 from "@angular/core";
export interface ColumnOption {
    value: string;
    label: string;
}
export declare class CacTableColumnSelectorComponent<T extends object> implements OnDestroy {
    tableRef: import("@angular/core").InputSignal<CacTableComponent<T>>;
    label: import("@angular/core").InputSignal<string>;
    placeholder: import("@angular/core").InputSignal<string>;
    storageKey: import("@angular/core").InputSignal<string>;
    columnControl: import("@al00x/forms").FormControlExtended<string[], any>;
    columnOptions: import("@angular/core").WritableSignal<ColumnOption[]>;
    private destroy$;
    private initialized;
    constructor();
    ngOnDestroy(): void;
    private initializeColumnOptions;
    private restoreColumnVisibility;
    private setInitialVisibleColumns;
    private setupColumnControlSubscription;
    private updateTableColumnVisibility;
    private saveColumnVisibility;
    /**
     * Reset columns to default visibility
     */
    resetColumns(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CacTableColumnSelectorComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CacTableColumnSelectorComponent<any>, "cac-table-column-selector", never, { "tableRef": { "alias": "tableRef"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
