import { YogaProperties } from '../flex/node.js';
import { ScrollbarProperties } from '../scroll.js';
import { WithAllAliases } from '../properties/alias.js';
import { PanelProperties } from '../panel/instanced-panel.js';
import { TransformProperties } from '../transform.js';
import { AllOptionalProperties, WithClasses, WithReactive } from '../properties/default.js';
import { ZIndexProperties } from '../order.js';
import { Signal } from '@preact/signals-core';
import { VisibilityProperties, WithConditionals } from './utils.js';
import { Listeners } from '../listeners.js';
import { ParentContext } from '../context.js';
import { PanelGroupProperties } from '../panel/instanced-panel-group.js';
import { PointerEventsProperties } from '../panel/index.js';
import { FontFamilies, InstancedTextProperties } from '../text/index.js';
import { EventHandlers, ThreeEventMap, UpdateMatrixWorldProperties } from '../internals.js';
import { Object3D } from 'three';
export type InheritableTextProperties = WithClasses<WithConditionals<WithAllAliases<WithReactive<YogaProperties & PanelProperties & ZIndexProperties & TransformProperties & ScrollbarProperties & PanelGroupProperties & InstancedTextProperties & VisibilityProperties & UpdateMatrixWorldProperties & PointerEventsProperties>>>>;
export type TextProperties<Em extends ThreeEventMap = ThreeEventMap> = InheritableTextProperties & Listeners & EventHandlers<Em>;
export declare function createTextState<EM extends ThreeEventMap = ThreeEventMap>(parentCtx: ParentContext, textSignal: Signal<unknown | Signal<unknown> | Array<unknown | Signal<unknown>>>, fontFamilies: Signal<FontFamilies | undefined> | undefined, style: Signal<TextProperties<EM> | undefined>, properties: Signal<TextProperties<EM> | undefined>, defaultProperties: Signal<AllOptionalProperties | undefined>): {
    node: Signal<import("../internals.js").FlexNode | undefined>;
    size: Signal<import("three").Vector2Tuple | undefined>;
    relativeCenter: Signal<import("three").Vector2Tuple | undefined>;
    borderInset: Signal<import("../internals.js").Inset | undefined>;
    overflow: Signal<import("yoga-layout/load").Overflow>;
    displayed: Signal<boolean>;
    scrollable: Signal<[boolean, boolean]>;
    paddingInset: Signal<import("../internals.js").Inset | undefined>;
    maxScrollPosition: Signal<[(number | undefined)?, (number | undefined)?]>;
} & {
    interactionPanel: import("three").Mesh<import("three").PlaneGeometry, import("three").Material | import("three").Material[], import("three").Object3DEventMap> & {
        boundingSphere: import("three").Sphere;
    };
    hoveredSignal: Signal<number[]>;
    activeSignal: Signal<number[]>;
    mergedProperties: import("@preact/signals-core").ReadonlySignal<import("../internals.js").MergedProperties>;
    transformMatrix: Signal<import("three").Matrix4 | undefined>;
    globalMatrix: Signal<import("three").Matrix4 | undefined>;
    isClipped: Signal<boolean>;
    isVisible: import("@preact/signals-core").ReadonlySignal<boolean>;
    groupDeps: import("@preact/signals-core").ReadonlySignal<Required<PanelGroupProperties>>;
    backgroundOrderInfo: Signal<import("../order.js").OrderInfo | undefined>;
    fontSignal: Signal<import("../internals.js").Font | undefined>;
    orderInfo: Signal<import("../order.js").OrderInfo | undefined>;
    handlers: import("@preact/signals-core").ReadonlySignal<EventHandlers>;
    ancestorsHaveListeners: import("@preact/signals-core").ReadonlySignal<boolean>;
    updateMatrixWorld: Signal<boolean>;
    textSignal: Signal<unknown>;
    root: import("../context.js").RootContext;
};
export declare function setupText<EM extends ThreeEventMap = ThreeEventMap>(state: ReturnType<typeof createTextState>, parentCtx: ParentContext, style: Signal<TextProperties<EM> | undefined>, properties: Signal<TextProperties<EM> | undefined>, object: Object3D, abortSignal: AbortSignal): void;
