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

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;

interface TokenProps {
    token: string;
    setToken: (token: string) => void;
}
declare const useToken: zustand.UseBoundStore<zustand.StoreApi<TokenProps>>;

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 {
    flow_id: string;
    reactFlowInstance: ReactFlowInstance;
}
declare function FlowBar({ flow_id, reactFlowInstance }: FlowBarProps): JSX.Element;

interface FlowProps extends PropsWithChildren {
    params: any;
}
declare function Editor({ params, children }: FlowProps): JSX.Element;

declare function ResizeRotateNode({ id, data }: {
    id: string;
    data: any;
}): JSX.Element;

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