import type { DataPoint } from "@d3plus/data";
import Viz from "./Viz.js";
/**
    Creates a simple rows/columns Matrix view of any dataset. See [this example](https://d3plus.org/examples/d3plus-matrix/getting-started/) for help getting started using the Matrix class.
*/
export default class Matrix extends Viz {
    [key: string]: any;
    /**
      Invoked when creating a new class instance, and sets any default parameters.
      @private
    */
    constructor();
    /**
        Extends the draw behavior of the abstract Viz class.
        @private
    */
    _draw(callback?: () => void): this;
    /**
        The pixel padding in between each cell.
  */
    cellPadding(_?: number): this | number;
    /**
        Determines which key in your data should be used for each column in the matrix. Can be either a String that matches a key used in every data point, or an accessor function that receives a data point and it's index in the data array, and is expected to return it's column value.
  
  @example
  function column(d) {
    return d.name;
  }
    */
    column(_?: string | ((d: DataPoint, i: number) => DataPoint[keyof DataPoint])): this | string | ((d: DataPoint, i: number) => DataPoint[keyof DataPoint]);
    /**
        A pass-through to the underlying [Axis](http://d3plus.org/docs/#Axis) config used for the column labels.
  */
    columnConfig(_?: Record<string, unknown>): this | Record<string, unknown>;
    /**
        A manual list of IDs to be used for columns.
  */
    columnList(_?: DataPoint[keyof DataPoint][]): this | DataPoint[keyof DataPoint][];
    /**
        A sort comparator function that is run on the unique set of column values.
  
  @example
  function column(a, b) {
    return a.localeCompare(b);
  }
    */
    columnSort(_?: (...args: unknown[]) => unknown): this | ((...args: unknown[]) => unknown);
    /**
        Determines which key in your data should be used for each row in the matrix. Can be either a String that matches a key used in every data point, or an accessor function that receives a data point and it's index in the data array, and is expected to return it's row value.
  
  @example
  function row(d) {
    return d.name;
  }
    */
    row(_?: string | ((d: DataPoint, i: number) => DataPoint[keyof DataPoint])): this | string | ((d: DataPoint, i: number) => DataPoint[keyof DataPoint]);
    /**
        A pass-through to the underlying [Axis](http://d3plus.org/docs/#Axis) config used for the row labels.
  */
    rowConfig(_?: Record<string, unknown>): this | Record<string, unknown>;
    /**
        A manual list of IDs to be used for rows.
  */
    rowList(_?: DataPoint[keyof DataPoint][]): this | DataPoint[keyof DataPoint][];
    /**
        A sort comparator function that is run on the unique set of row values.
  
  @example
  function row(a, b) {
    return a.localeCompare(b);
  }
    */
    rowSort(_?: (...args: unknown[]) => unknown): this | ((...args: unknown[]) => unknown);
}
