/**
 * Implements (a subset of) the Vega-Lite's Facet-operator:
 * https://vega.github.io/vega-lite/docs/facet.html
 *
 * TODO:
 *  - Facet channel titles
 *  - Suppress redundant axes
 *  - Make this thing configurable
 *
 * @typedef {object} FacetDimension Stuff for working with facet dimensions
 * @prop {function} accessor
 * @prop {boolean[] | string[] | number[]} factors
 * @prop {FacetFieldDef} facetFieldDef
 *
 */
export default class FacetView extends ContainerView<import("../spec/view.js").ContainerSpec> {
    /**
     * @typedef {import("./view.js").default} View
     * @typedef {import("./layerView.js").default} LayerView
     * @typedef {import("./viewUtils.js").FacetFieldDef} FacetFieldDef
     * @typedef {import("./viewUtils.js").FacetMapping} FacetMapping
     * @typedef {import("./layout/flexLayout.js").LocSize} LocSize
     * @typedef {import("./layout/flexLayout.js").SizeDef} SizeDef
     */
    /**
     *
     * @param {import("./viewUtils.js").FacetSpec} spec
     * @param {import("./viewUtils.js").ViewContext} context
     * @param {ContainerView} parent
     * @param {string} name
     */
    constructor(spec: import("./viewUtils.js").FacetSpec, context: import("./viewUtils.js").ViewContext, parent: ContainerView, name: string);
    spec: any;
    child: any;
    /**
     * Faceted views for displaying the facet labels
     *
     * @type {Record<FacetChannel, UnitView>}
     */
    _labelViews: Record<FacetChannel, UnitView>;
    /**  @type {Record<FacetChannel, FacetDimension>} */
    _facetDimensions: Record<FacetChannel, FacetDimension>;
    transformData(): void;
    /**
     *
     * @param {"row" | "column"} channel
     */
    getAccessor(channel: "row" | "column"): any;
    updateFacets(): void;
    updateLabels(): void;
    getFacetGroups(): string[] | number[] | boolean[];
    /**
     * @param {import("./renderingContext/viewRenderingContext.js").default} context
     * @param {import("./layout/rectangle.js").default} coords
     * @param {import("./view.js").RenderingOptions} [options]
     */
    render(context: import("./renderingContext/viewRenderingContext.js").default, coords: import("./layout/rectangle.js").default, options?: import("./view.js").RenderingOptions): void;
    _labelsUpdated: boolean;
}
export type FacetChannel = "column" | "row";
/**
 * Stuff for working with facet dimensions
 */
export type FacetDimension = {
    accessor: Function;
    factors: boolean[] | string[] | number[];
    facetFieldDef: any;
};
import ContainerView from "./containerView.js";
import UnitView from "./unitView.js";
//# sourceMappingURL=facetView.d.ts.map