import { ObservablePoint } from '../../maths/ObservablePoint';
import { HTMLTextStyle } from './HtmlTextStyle';
import type { PointData } from '../../maths/PointData';
import type { View, ViewObserver } from '../renderers/shared/View';
import type { Bounds } from '../scene/bounds/Bounds';
import type { TextureDestroyOptions, TypeOrBool } from '../scene/destroyTypes';
import type { HTMLTextStyleOptions } from './HtmlTextStyle';
import type { TextStyle, TextStyleOptions } from './TextStyle';
export type TextString = string | number | {
    toString: () => string;
};
export type AnyTextStyle = TextStyle | HTMLTextStyle;
type Filter<T> = {
    [K in keyof T]: {
        text?: TextString;
        renderMode?: K;
        resolution?: number;
        style?: T[K];
    };
}[keyof T];
export type TextStyles = {
    canvas: TextStyleOptions | TextStyle;
    html: HTMLTextStyleOptions | HTMLTextStyle;
    bitmap: TextStyleOptions | TextStyle;
};
export type TextViewOptions = Filter<TextStyles>;
export declare class TextView implements View {
    readonly uid: number;
    readonly renderPipeId: string;
    readonly owner: ViewObserver;
    batched: boolean;
    anchor: ObservablePoint;
    resolution: number;
    /** @internal */
    _style: AnyTextStyle;
    /** @internal */
    _didUpdate: boolean;
    private _bounds;
    private _boundsDirty;
    private _text;
    private readonly _renderMode;
    constructor(options: TextViewOptions);
    set text(value: TextString);
    get text(): string;
    get style(): AnyTextStyle;
    set style(style: AnyTextStyle | Partial<AnyTextStyle>);
    get bounds(): [number, number, number, number];
    addBounds(bounds: Bounds): void;
    containsPoint(point: PointData): boolean;
    /** @internal */
    onUpdate(): void;
    /** @internal */
    _getKey(): string;
    private _updateBounds;
    private _detectRenderType;
    /**
     * Destroys this text renderable and optionally its style texture.
     * @param options - Options parameter. A boolean will act as if all options
     *  have been set to that value
     * @param {boolean} [options.texture=false] - Should it destroy the texture of the text style
     * @param {boolean} [options.textureSource=false] - Should it destroy the textureSource of the text style
     */
    destroy(options?: TypeOrBool<TextureDestroyOptions>): void;
}
export {};
