import { RangeSet } from "@codemirror/rangeset";
import { Extension, Facet, StateField } from "@codemirror/state";
import { PrismaQuery, PrismaQueryRangeValue } from "./find-queries";
/**
 * Facet to allow configuring query execution callback
 */
export declare type OnExecute = (query: PrismaQuery) => void;
export declare const OnExecuteFacet: Facet<OnExecute, OnExecute>;
/**
 * Facet to allow configuring query enter callback
 */
export declare type OnEnterQuery = (query: PrismaQuery) => void;
export declare const OnEnterQueryFacet: Facet<OnEnterQuery, OnEnterQuery>;
/**
 * Facet to allow configuring query leave callback
 */
export declare type OnLeaveQuery = () => void;
export declare const OnLeaveQueryFacet: Facet<OnLeaveQuery, OnLeaveQuery>;
/**
 * State field that tracks which ranges are PrismaClient queries.
 * We don't store a DecorationSet directly in the StateField because we need to be able to find the `text` of a query
 */
export declare const prismaQueryStateField: StateField<RangeSet<PrismaQueryRangeValue>>;
/**
 * An extension that enables Prisma Client Query tracking
 */
export declare function state(config: {
    onExecute?: OnExecute;
    onEnterQuery?: OnEnterQuery;
    onLeaveQuery?: OnLeaveQuery;
}): Extension;
