import { type Effect, type GenericNodeData, type NodeDefinitionData, type NodesMap, type Paint, type TokenStyleTypes, type TypeStyle } from "../types";
export declare class FigmaNode<DataType extends GenericNodeData = GenericNodeData> {
    protected readonly nodeId: string | undefined;
    protected readonly nodeType: DataType["type"] | undefined;
    protected readonly data: NodeDefinitionData<DataType> | undefined;
    protected readonly childrenIds: string[] | undefined;
    protected readonly parentId: string | undefined;
    get DefaultValues(): NodeDefinitionData<DataType>;
    constructor(data: Record<string, unknown>, parentId?: string);
    get id(): string | undefined;
    get type(): DataType["type"] | undefined;
    get name(): string | undefined;
    get definition(): NodeDefinitionData<DataType> | undefined;
    get valid(): boolean;
    get children(): FigmaNode<GenericNodeData>[];
    get parent(): FigmaNode | undefined;
    get isGraphicNode(): boolean;
    getTokens(type: TokenStyleTypes): import("../types").Variable[];
    isDescendant(id?: string): boolean;
    getNodesByType<Type extends keyof NodesMap>(type: Type): NodesMap[Type][];
    get styles(): Record<string, Paint | Effect | TypeStyle>;
}
