import type { EventOf, SubscriptionConfig, SubscriptionOf } from "@mcastiello/event-bus";
import { type DownloadedGraphics, ExportFormat } from "../types";
import { Channels, type FigmaticBusDefinition } from "../types/events";
import type { FigmaNode } from "../nodes";
import type { ExportPlugin } from "./parse";
declare class FigmaLoader {
    private file;
    private branch;
    private pageFilters;
    private data;
    private variables;
    private getDuration;
    subscribe<Event extends EventOf<FigmaticBusDefinition, Channels.Figmatic>>(event: Event, subscription: SubscriptionOf<FigmaticBusDefinition, Channels.Figmatic, Event>, options?: SubscriptionConfig): import("@mcastiello/event-bus/dist/types/internal").ClearFunction;
    load(file: string, token: string, pageFilters?: (string | RegExp)[]): Promise<void>;
    get selectedBranch(): string | undefined;
    get graphicBatchSize(): number;
    set graphicBatchSize(batchSize: number);
    private downloadBranch;
    private downloadSelectedBranch;
    private parseFigmaFile;
    clear(): void;
    downloadGraphics<Format extends ExportFormat = ExportFormat.SVG>(nodes: FigmaNode[], format?: Format, scale?: number): Promise<DownloadedGraphics<Format>>;
    selectBranch(branch?: string): Promise<void>;
    registerExportPlugin(plugin: ExportPlugin, name?: string): void;
    generateExport(pluginName?: string): Promise<Record<string, string>>;
}
export declare const Figmatic: FigmaLoader;
export {};
