import type Database from "../../v1/metadata/Database";
import type { DatabaseFeature } from "../../../metabase-types/api";
export interface HelpText {
    name: string;
    args?: HelpTextArg[];
    description: string;
    example: string;
    structure: string;
    docsPage?: string;
}
export interface HelpTextConfig {
    name: string;
    args?: HelpTextArg[];
    description: (database: Database, reportTimezone?: string) => string;
    structure: string;
    docsPage?: string;
}
interface HelpTextArg {
    name: string;
    description: string;
    example: string;
}
type MBQLClauseFunctionReturnType = "aggregation" | "any" | "boolean" | "datetime" | "expression" | "number" | "string";
export type MBQLClauseFunctionConfig = {
    displayName: string;
    type: MBQLClauseFunctionReturnType;
    args: string[];
    requiresFeature?: DatabaseFeature;
    hasOptions?: boolean;
    multiple?: boolean;
    tokenName?: string;
    name?: string;
    validator?: (...args: any) => string | undefined;
};
export type MBQLClauseMap = Record<string, MBQLClauseFunctionConfig>;
export type ErrorWithMessage = {
    message: string;
    pos?: number | null;
    len?: number | null;
};
export type Token = {
    type: number;
    op?: string;
    start: number;
    end: number;
};
export {};
