import { DrillData } from '../types';
import { Cell } from '../../data_tree';
import { RenderMetadata } from '../render-result-metadata';
interface BrushDataBase {
    fieldRefId: string;
    sourceId: string;
}
interface BrushDataDimension extends BrushDataBase {
    type: 'dimension';
    value: (string | number | boolean | Date)[];
}
interface BrushDataMeasure extends BrushDataBase {
    type: 'measure';
    value: number[];
}
export interface ModifyBrushOp {
    type: 'add' | 'remove';
    sourceId: string;
    value?: BrushData;
}
interface BrushDataMeasureRange extends BrushDataBase {
    type: 'measure-range';
    value: [number, number];
}
export type BrushData = BrushDataDimension | BrushDataMeasure | BrushDataMeasureRange;
export type VegaBrushOutput = {
    sourceId: string;
    data: BrushData | null;
    debounce?: number | {
        time?: number;
        strategy?: 'always' | 'on-empty';
    };
};
export interface ResultStoreData {
    brushes: BrushData[];
    showCopiedModal: boolean;
}
export declare function createResultStore(): {
    store: ResultStoreData;
    applyBrushOps: (ops: ModifyBrushOp[]) => void;
    triggerCopiedModal: (time?: number) => void;
};
export type ResultStore = ReturnType<typeof createResultStore>;
export declare function copyExplorePathQueryToClipboard({ metadata, data, onDrill, }: {
    metadata: RenderMetadata;
    data: Cell;
    onDrill?: (drillData: DrillData) => void;
}): Promise<void>;
export {};
