import type { CustomDataMap, INode, INodeAnimatableProps, INodeWritableProps } from '../../main-api/INode.js';
import type { Stage } from '../../core/Stage.js';
import type { IAnimationController } from '../../common/IAnimationController.js';
import { CoreNode } from '../../core/CoreNode.js';
import type { RendererMain, TextureRef } from '../../main-api/RendererMain.js';
import type { AnimationSettings } from '../../core/animations/CoreAnimation.js';
import { EventEmitter } from '../../common/EventEmitter.js';
import type { MainOnlyShaderController } from './MainOnlyShaderController.js';
export declare function getNewId(): number;
export declare class MainOnlyNode extends EventEmitter implements INode {
    private rendererMain;
    private stage;
    readonly id: number;
    readonly coreNode: CoreNode;
    protected _children: MainOnlyNode[];
    protected _src: string;
    protected _parent: MainOnlyNode | null;
    protected _texture: TextureRef | null;
    protected _shader: MainOnlyShaderController | null;
    protected _data: CustomDataMap | undefined;
    constructor(props: INodeWritableProps, rendererMain: RendererMain, stage: Stage, coreNode?: CoreNode);
    get x(): number;
    set x(value: number);
    get y(): number;
    set y(value: number);
    get width(): number;
    set width(value: number);
    get height(): number;
    set height(value: number);
    get alpha(): number;
    set alpha(value: number);
    get autosize(): boolean;
    set autosize(value: boolean);
    get clipping(): boolean;
    set clipping(value: boolean);
    get color(): number;
    set color(value: number);
    get colorTop(): number;
    set colorTop(value: number);
    get colorBottom(): number;
    set colorBottom(value: number);
    get colorLeft(): number;
    set colorLeft(value: number);
    get colorRight(): number;
    set colorRight(value: number);
    get colorTl(): number;
    set colorTl(value: number);
    get colorTr(): number;
    set colorTr(value: number);
    get colorBl(): number;
    set colorBl(value: number);
    get colorBr(): number;
    set colorBr(value: number);
    get scale(): number | null;
    set scale(value: number | null);
    get scaleX(): number;
    set scaleX(value: number);
    get scaleY(): number;
    set scaleY(value: number);
    get mount(): number;
    set mount(value: number);
    get mountX(): number;
    set mountX(value: number);
    get mountY(): number;
    set mountY(value: number);
    get pivot(): number;
    set pivot(value: number);
    get pivotX(): number;
    set pivotX(value: number);
    get pivotY(): number;
    set pivotY(value: number);
    get rotation(): number;
    set rotation(value: number);
    get parent(): MainOnlyNode | null;
    set parent(newParent: MainOnlyNode | null);
    get children(): MainOnlyNode[];
    get zIndex(): number;
    set zIndex(value: number);
    get zIndexLocked(): number;
    set zIndexLocked(value: number);
    get src(): string;
    set src(imageUrl: string);
    get texture(): TextureRef | null;
    set texture(texture: TextureRef | null);
    private onTextureLoaded;
    private onTextureFailed;
    private onTextureFreed;
    private onOutOfBounds;
    private onInBounds;
    private onOutOfViewport;
    private onInViewport;
    get shader(): MainOnlyShaderController | null;
    set shader(shader: MainOnlyShaderController | null);
    get data(): CustomDataMap | undefined;
    set data(d: CustomDataMap);
    destroy(): void;
    flush(): void;
    animate(props: Partial<INodeAnimatableProps>, settings: Partial<AnimationSettings>): IAnimationController;
}
