import React from "react";
import { IconName } from "@fortawesome/fontawesome-svg-core";
export type QueryBuilderField<T extends any = any> = {
    label: string;
    canHandle: (input: string) => boolean;
    assignQuery: (state: any, query: any) => void;
    decodeQuery: (query: any) => T | void;
    inputComponent: React.FunctionComponent<{
        field: QueryBuilderField;
        state: T;
        setState: (v: T) => void;
    }>;
    defaultState: (input: string) => T;
    icon: IconName;
};
export type QueryBuilderActiveField<T extends any = any> = {
    baseField: QueryBuilderField<T>;
    uid: string;
    state: T;
};
export type QueryBuilderMapping = {
    defaultFieldLabel: string;
    fields: QueryBuilderField[];
};
export declare enum QueryBuilderType {
    docs = "docs",
    spaces = "spaces",
    users = "users"
}
export declare const mappingMap: Map<QueryBuilderType, QueryBuilderMapping>;
