import { PropertyValues } from "lit";
import { Hertz, Seconds } from "../../models/unitConverters";
import { ChromeTemplate } from "../../mixins/chrome/types";
declare const AxesComponent_base: import("../../helpers/types/mixins").Component & {
tagName: string;
};
/**
* @description
* X and Y axis grid lines showing duration and frequency of a spectrogram
*
* This component must wrap an element that implements the ChromeHost mixin
*
* @example
* ```html
*
*
*
* ```
*
* @csspart tick - Apply styles to both x and y tick lines
* @csspart x-tick - Apply styles to only the x axis tick lines
* @csspart y-tick - Apply styles to only the y axis tick lines
*
* @csspart grid - Apply styles to both x and y grid lines
* @csspart x-grid - Apply styles to only the x grid lines
* @csspart y-grid - Apply styles to only the y grid lines
*
* @csspart label - Apply styles to both x and y labels
* @csspart x-label - Apply styles to only the x axis label
* @csspart y-label - Apply styles to only the x axis label
*
* @csspart title - Apply styles to both the x and y titles
* @csspart x-title - Apply styles to only the x axis title
* @csspart y-title - Apply styles to only the y axis title
*
* @slot - A spectrogram element to add axes to
*/
export declare class AxesComponent extends AxesComponent_base {
static styles: import("lit").CSSResult;
static fontCanvas: HTMLCanvasElement;
private static labelPadding;
private static tickSize;
private static titleOffset;
/** The step size for the x-axis */
xStepOverride?: Seconds;
/** The step size for the y-axis */
yStepOverride?: Hertz;
/** The text to show next to the x-axis */
xTitle: string;
/** The text to show next to the y-axis */
yTitle: string;
/** Whether to show/hide the x-axis title */
showXTitle: boolean;
/** Whether to show/hide the y-axis title */
showYTitle: boolean;
/** Shows/hides x-axis labels and ticks */
showXAxis: boolean;
/** Shows/hides y-axis labels and ticks */
showYAxis: boolean;
/** Shows/hides x-axis labels and grid lines */
showXGrid: boolean;
/** Shows/hides y-axis labels and grid lines */
showYGrid: boolean;
private spectrogram?;
private unitConverter?;
private emUnitFontSize;
private basicLabelFontSize;
private xAxisTemplate;
private yAxisTemplate;
private get labelPadding();
private get tickSize();
private get titleOffset();
firstUpdated(change: PropertyValues): void;
protected handleSlotChange(): void;
private calculateFontSize;
private createGridLinesTemplate;
private createAxisLabelsTemplate;
private xValues;
private yValues;
private basicStepper;
private melStepper;
private totalLabelSize;
private willFitStep;
private calculateStep;
private generateAxisValues;
chromeLeft(): ChromeTemplate;
chromeBottom(): ChromeTemplate;
chromeOverlay(): ChromeTemplate;
}
declare global {
interface HTMLElementTagNameMap {
"oe-axes": AxesComponent;
}
}
export {};