import type { EventDeliveryType } from "@/constants/enums";
import type { Pagination, Tag } from "@/types/utils/types";

export type UtilityStoreType = {
  awaitingBotResponse: boolean;
  setAwaitingBotResponse: (value: boolean) => void;
  selectedItems: string[];
  setSelectedItems: (itemId: string) => void;
  healthCheckTimeout: string | null;
  setHealthCheckTimeout: (timeout: string | null) => void;
  playgroundScrollBehaves: ScrollBehavior;
  setPlaygroundScrollBehaves: (behaves: ScrollBehavior) => void;
  maxFileSizeUpload: number;
  setMaxFileSizeUpload: (maxFileSizeUpload: number) => void;
  flowsPagination: Pagination;
  setFlowsPagination: (pagination: Pagination) => void;
  tags: Tag[];
  setTags: (tags: Tag[]) => void;
  featureFlags: Record<string, unknown>;
  setFeatureFlags: (featureFlags: Record<string, unknown>) => void;
  webhookPollingInterval: number;
  setWebhookPollingInterval: (webhookPollingInterval: number) => void;
  chatValueStore: string;
  setChatValueStore: (value: string) => void;
  currentSessionId: string;
  setCurrentSessionId: (sessionId: string) => void;
  setClientId: (clientId: string) => void;
  clientId: string;
  eventDelivery: EventDeliveryType;
  setEventDelivery: (eventDelivery: EventDeliveryType) => void;
  serializationMaxItemsLength: number;
  setSerializationMaxItemsLength: (serializationMaxItemsLength: number) => void;
  webhookAuthEnable: boolean;
  setWebhookAuthEnable: (webhookAuthEnable: boolean) => void;
  defaultFolderName: string;
  setDefaultFolderName: (defaultFolderName: string) => void;
  hideGettingStartedProgress: boolean;
  setHideGettingStartedProgress: (hideGettingStartedProgress: boolean) => void;
  allowCustomComponents: boolean;
  setAllowCustomComponents: (allowCustomComponents: boolean) => void;
  mcpBaseUrl: string;
  setMcpBaseUrl: (mcpBaseUrl: string) => void;
};
