import { Actor, BaseAlign, Color, FontStyle, TextAlign, Vector } from "excalibur";
export interface LabelOptions {
    /**  The text to draw. */
    readonly text?: string;
    /** The CSS font family string (e.g. `sans-serif`, `Droid Sans Pro`). Web
     * fonts are supported, same as in CSS. */
    readonly fontFamily?: string;
    /** The font style for the label.
     *
     * @default FontStyle.Normal */
    readonly fontStyle?: FontStyle;
    /** True if the text is bold.
     *
     * @default false */
    readonly bold?: boolean;
    /** The font size in pixels.
     *
     * @default 10 */
    readonly fontSize?: number;
    /** Horizontal text alignment.
     *
     * @default TextAlign.Left */
    readonly textAlign?: TextAlign;
    /** Baseline alignment.
     *
     * @default BaseAlign.Alphabetic */
    readonly baseAlign?: BaseAlign;
    /** The height of each line of text in pixels, for multiline text.
     *
     * Set to `undefined` to use the font size as the line height.
     *
     * @default undefined */
    readonly lineHeight?: number;
    /** The maximum width of a line of text, in pixels, after which the text
     * will wrap to the next line.
     *
     * Set to `Infinity` to disable text wrapping.
     *
     * @default Infinity */
    readonly wrapWidth?: number;
    /** The position of the text in pixels. */
    readonly pos?: Vector;
    /** The velocity of the text in pixels per second. */
    readonly vel?: Vector;
    /** The acceleration of the text in pixels per second per second. */
    readonly acc?: Vector;
    /** The rotation of the text in radians. */
    readonly rotation?: number;
    /** The rotational velocity of the text in radians per second. */
    readonly rx?: number;
    /** True if the text is visible, false if it is invisible.
     *
     * @default true */
    readonly visible?: boolean;
    /** The color of the text. */
    readonly color?: Color;
    /** The color of the text outline. Set to Color.Transparent to hide the outline.
     *
     * @default Color.Transparent */
    readonly outlineColor?: Color;
    /** The width of the text outline, in pixels. Set to 0 to hide the outline.
     *
     * @default 0 */
    readonly outlineWidth?: number;
    /** Overall opacity of the label, from 0 to 1.
     *
     * @default 1 */
    readonly alpha?: number;
    /** Do not use.
     *
     * @deprecated This field has an unwanted and confusing interaction with
     * the underlying Actor class.
     *
     * @see https://github.com/excaliburjs/Excalibur/issues/874#issuecomment-814557137 */
    readonly opacity?: number;
    /** The color of the shadow. Set to Color.Transparent to hide the shadow.
     *
     * @default Color.Transparent */
    readonly shadowColor?: Color;
    /** The offset of the shadow from the text, in pixels.
     *
     * @default Vector.Zero */
    readonly shadowOffset?: Vector;
    /** Radius of the shadow blur in pixels.
     *
     * @default 0 */
    readonly shadowBlurRadius?: number;
}
export default class Label extends Actor {
    /**  The text to draw. */
    text: string;
    /** True if the text is bold.
     *
     * @default false */
    bold: boolean;
    /** The CSS font family string (e.g. `sans-serif`, `Droid Sans Pro`). Web fonts
     * are supported, same as in CSS. */
    fontFamily: string;
    /** Font size in the selected units (`fontUnit`).
     *
     * @default 10 */
    fontSize: number;
    /** The font style for this label
     *
     * @default FontStyle.Normal */
    fontStyle: FontStyle;
    /** Horizontal text alignment.
     *
     * @default TextAlign.Left */
    textAlign: TextAlign;
    /** Vertical baseline text alignment.
     *
     * @default BaseAlign.Bottom */
    baseAlign: BaseAlign;
    /** The height of each line of text in pixels, for multiline text.
     *
     * Set to `undefined` to use the font size as the line height. */
    lineHeight: number | undefined;
    /** The maximum width of a line of text, in pixels, after which the text
     * will wrap to the next line.
     *
     * Set to `Infinity` to disable text wrapping. */
    wrapWidth: number;
    /** The color of the text outline. Set to Color.Transparent to hide the outline. */
    outlineColor: Color;
    /** The width of the text outline, in pixels. Set to 0 to hide the outline. */
    outlineWidth: number;
    /** The color of the shadow. Set to Color.Transparent to hide the shadow. */
    shadowColor: Color;
    /** The offset of the shadow from the text, in pixels. */
    shadowOffset: Vector;
    /** Radius of the shadow blur in pixels. */
    shadowBlurRadius: number;
    /** Overall opacity of the label, from 0 to 1. */
    alpha: number;
    /** Do not use.
     *
     * @deprecated This field has an unwanted and confusing interaction with
     * the underlying Actor class.
     *
     * @see https://github.com/excaliburjs/Excalibur/issues/874#issuecomment-814557137 */
    opacity: number;
    constructor(options?: LabelOptions);
    draw(context: CanvasRenderingContext2D, delta: number): void;
    private wrapLines;
}
