import { EventEmitter } from '../../../stencil.core';
import { BooleanLabelFormatter } from '../../../types/types';
import { DetailFormatter, DetailRenderer, RowRenderControl, RowRenderFn, RowRenderTest, RowSelectionChange, RowSelectionMode } from '../table.types';
export declare class RowSelection implements RowRenderControl {
    private headerControl;
    private rowsDidChangeListener;
    private table;
    element: HTMLAnjRowSelectionElement;
    /**
     * Function to use to format the detail
     */
    formatter: DetailFormatter;
    /**
     * Formatter for the hidden label for multi-select checkboxes
     */
    labelFormatter: BooleanLabelFormatter;
    /**
     * The mode of selection
     * Possible values are: `"batch"`, and `"single`. Defaults to "single"
     */
    mode: RowSelectionMode;
    /**
     * Function to use to format the detail
     */
    renderer: DetailRenderer;
    /**
     * Renderer to use for cell content when the selected cell conditions are met
     */
    row: RowRenderFn;
    /**
     * For batch selection only, will renderer a "select all" checkbox
     */
    showCheckAll: boolean;
    /**
     * If true, will render checkboxes for batch selection and radio buttons for single
     */
    showChecks: boolean;
    /**
     * Template to use for master/detail selection
     */
    template: string;
    /**
     * Rules to use for using this as a renderer
     */
    when: RowRenderTest;
    /**
     * Emitted when the selector has been created.
     */
    anjRowControlDidLoad: EventEmitter<void>;
    /**
     * Emitted when the selected rows changes
     */
    anjRowSelect: EventEmitter<RowSelectionChange>;
    connectedCallback(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    private static clearStyles;
    private onRowsDidChange;
    private onSelection;
    private onSelectAll;
    /**
     * This is a little wonky but the main thrust is that we get all the args in onSelectAll, so if we're calling this from there, it doesn't make sense to
     * get it all again.
     */
    private checkSelectAll;
    private renderRow;
    private cell;
    private header;
    private selected;
    private hasDetail;
    private useAsRenderer;
    render(): any;
}
