import type { Trace, TraceProposal } from '../trace/trace.js';
/**
 * Frozen `_meta` keys for the chart App.
 * chart-app reads this contract. It does not invent keys.
 *
 * `_meta.trace` is the decision record.
 * `_meta.proposal` is optional and present only when an action is held.
 * `ui.resourceUri` stays `ui://ui9000/chart`.
 */
export declare const META_RESOURCE_URI = "ui://ui9000/chart";
export declare const FROZEN_META_KEYS: readonly ["_meta.trace", "_meta.proposal", "ui.resourceUri"];
export type WorkspaceMetaInput = {
    resourceUri: string;
    csp: unknown;
    chartType: string;
    dataUrl: string;
    chartId: string;
    trace?: Trace;
    proposal?: TraceProposal;
};
/** The object chart-app is allowed to read. Resource URI is not renamed. */
export declare function workspaceMeta(input: WorkspaceMetaInput): Record<string, unknown>;
/**
 * Drops dataset `rows` everywhere.
 * Drops a `data` array only inside a decision record (`trace`, `proposal`, `proposals`).
 * A `data` array on the tool result itself is left alone.
 */
export declare function omitRowArrays<T>(value: T, insideDecision?: boolean): T;
export declare function containsRowArrays(value: unknown): boolean;
