import { Tag } from '@malloydata/malloy-tag';
import { VegaChartProps, VegaConfigHandler } from './types';
import { ResultStore } from './result-store/result-store';
import { Runtime } from 'vega';
import { RootField } from '../data_tree';
import { RenderFieldMetadata } from '../render-field-metadata';
import { MalloyExplicitTheme } from '../api/types';
export type GetResultMetadataOptions = {
    renderFieldMetadata: RenderFieldMetadata;
    getVegaConfigOverride?: VegaConfigHandler;
    parentSize: {
        width: number;
        height: number;
    };
    useVegaInterpreter?: boolean;
    /**
     * Operator-level theme passed by the embedding app (e.g. Publisher).
     * The `# shape_map` and `# segment_map` plugins build their own
     * colour scales and forward this to {@link getColorScale} so the
     * gradient picks up the operator's `mapColor` instead of the
     * hardcoded blue ramp.
     */
    explicitTheme?: MalloyExplicitTheme;
};
export interface FieldVegaInfo {
    runtime: Runtime | null;
    props: VegaChartProps | null;
    error: Error | null;
}
export interface RenderMetadata {
    store: ResultStore;
    vega: Record<string, FieldVegaInfo>;
    rootField: RootField;
    parentSize: {
        width: number;
        height: number;
    };
    renderAs: string;
    sizingStrategy: 'fill' | 'fixed';
    renderFieldMetadata: RenderFieldMetadata;
    styleOverrides: Record<string, string>;
}
export declare function getResultMetadata(rootField: RootField, options: GetResultMetadataOptions): RenderMetadata;
export declare function shouldRenderChartAs(tag: Tag): string | undefined;
