import { MalloyRendererOptions } from './types';
import { RenderPluginFactory, RenderPluginInstance } from './plugin-types';
import { RenderFieldMetadata } from '../render-field-metadata';
import type * as Malloy from '@malloydata/malloy-interfaces';
export declare class MalloyViz {
    private options;
    private disposeFn;
    private targetElement;
    private result;
    private metadata;
    private pluginRegistry;
    private logCollector;
    private readyCallbacks;
    private isReady;
    private unreadTagsCollected;
    constructor(options: MalloyRendererOptions, pluginRegistry?: RenderPluginFactory[]);
    static addStylesheet(styles: string): void;
    getHTML(): Promise<string>;
    copyToHTML(): Promise<void>;
    setResult(malloyResult: Malloy.Result): void;
    render(targetElement?: HTMLElement): void;
    remove(): void;
    updateOptions(newOptions: Partial<MalloyRendererOptions>): void;
    getMetadata(): RenderFieldMetadata | null;
    getActivePlugin(fieldKey: string): RenderPluginInstance | null;
    /**
     * Register a callback to be called when the render is complete.
     * If the render is already complete, the callback is called immediately.
     * Unread tag warnings are collected once the render is ready,
     * so `getLogs()` should be called from the onReady callback
     * to include unread tag warnings.
     */
    onReady(callback: () => void): void;
    /**
     * Get log messages including semantic errors and unread tag warnings.
     */
    getLogs(): Malloy.LogMessage[];
    private handleReady;
    /**
     * Walk all field tags and collect warnings for unread properties.
     * Safe to call multiple times; only collects once.
     */
    private collectUnreadTagWarnings;
}
