/// <reference types="react" />
import * as swr__internal from 'swr/_internal';
import React, { PropsWithChildren, ReactNode } from 'react';
import { ReactFlowInstance } from 'reactflow';
import * as zustand from 'zustand';

declare const usePlatform: () => {
    platform: any;
    platformError: any;
    isPlatformLoading: boolean;
};
declare const useFlow: (flow_id: string | null | undefined) => {
    flow: any;
    flowMutate: swr__internal.KeyedMutator<any>;
    isFlowLoading: boolean;
    isFlowError: any;
};
declare const useActions: () => {
    actions: never[];
    isActionsLoading: boolean;
    isActionError: boolean;
}[];
declare const useSearchActions: () => {
    actions: any[] | undefined;
    error: any;
    isLoading: boolean;
    doQuery: React.Dispatch<React.SetStateAction<string>>;
};
type EdgebrixProviderProps = {
    clientAuthToken?: string;
    children: Array<ReactNode> | ReactNode;
};
declare function EdgebrixProvider({ clientAuthToken, children, }: PropsWithChildren<EdgebrixProviderProps>): JSX.Element;

declare const SelectActionPanel: () => JSX.Element;

declare function FlowActions(): JSX.Element;

interface SearchBarProps {
    props?: any;
    children?: React.ReactNode;
}

declare function ActionsSearchBar({ props, children, }: PropsWithChildren<SearchBarProps>): JSX.Element;

interface NavbarProps {
    userElement?: React.ReactNode;
}
declare function Navbar({ children, userElement }: PropsWithChildren<NavbarProps>): JSX.Element;

declare function User({ children }: PropsWithChildren<any>): JSX.Element;

declare function SearchBar({ children }: PropsWithChildren<any>): JSX.Element;

interface FlowBarProps extends PropsWithChildren<any> {
    flow_id?: string;
    replaceFolderWith?: string | null | undefined;
    replaceFlowWith?: string | null | undefined;
    logoUrl?: string;
    reactFlowInstance: ReactFlowInstance | null;
}
declare function FlowBar({ flow_id, logoUrl, reactFlowInstance, children, replaceFolderWith, replaceFlowWith, }: FlowBarProps): JSX.Element;

declare function Editor({ children, ...props }: {
    children?: any;
}): JSX.Element;

type State = {
    token: string;
};
type Actions = {
    setToken: (token: string) => void;
};
declare const useToken: zustand.UseBoundStore<zustand.StoreApi<State & Actions>>;

export { ActionsSearchBar, EdgebrixProvider, Editor, FlowActions, FlowBar, Navbar, SearchBar, SelectActionPanel, User, useActions, useFlow, usePlatform, useSearchActions, useToken };
