import { ReadonlySignal, Signal } from '@preact/signals-core';
import { PanelGroupManager } from './panel/instance/group-manager.js';
import { WithReversePainterSortStableCache } from './order.js';
import { Matrix4, Vector2Tuple } from 'three';
import { GlyphGroupManager } from './text/render/instanced-glyph-group.js';
import { Component } from './components/component.js';
import { Properties } from './properties/index.js';
export type RenderContext = {
    requestFrame: () => void;
};
export type RootContext = WithReversePainterSortStableCache & {
    requestCalculateLayout: () => void;
    requestRender: () => void;
    component: Component;
    glyphGroupManager: GlyphGroupManager;
    panelGroupManager: PanelGroupManager;
    onFrameSet: Set<(delta: number) => void>;
    onUpdateMatrixWorldSet: Set<() => void>;
    isUpdateRunning: boolean;
} & Partial<RenderContext>;
export declare function buildRootContext(component: Component, renderContext: RenderContext | undefined): ReadonlySignal<RootContext>;
export declare function buildRootMatrix(properties: Properties, size: Signal<Vector2Tuple | undefined>): Matrix4 | undefined;
