import { UserInterface } from "@sankhyalabs/core";
import { DataType } from "@sankhyalabs/core";
export interface FilterFieldsDataSource {
  fetchData(link?: IFilterLink): Promise<IFilterMetadata>;
}
export declare enum SelectedItemType {
  LINK = "LINK",
  FIELD = "FIELD"
}
export interface IPropertiesFieldSearch {
  [key: string]: any;
}
export interface IFilterField {
  description: string;
  label: string;
  name: string;
  uri: string;
  onlyDate: boolean;
  dataType: DataType;
  userInterface: UserInterface;
  properties: IPropertiesFieldSearch;
  entityName?: string;
  type?: SelectedItemType;
  path?: string;
  entityPath?: Array<string>;
}
export interface IFilterLink {
  id?: string;
  uri: string;
  description: string;
  fieldCount: number;
  type?: SelectedItemType;
  cache?: boolean;
}
export interface IFilterMetadata {
  fields: Array<IFilterField>;
  links: Array<IFilterLink>;
  currentLink: IFilterLink;
}
