/**
 * Generated by tsnapi — public API snapshot of `@devframes/json-render-ui`
 */
// #region Interfaces
export interface ActionBridgeRpc {
  call: (_: string, ..._: unknown[]) => Promise<unknown>;
}
export interface CreateRendererOptions {
  registry?: ComponentRegistry;
}
export interface JsonRenderActionBridge {
  handlers: Record<string, (params?: Record<string, unknown>) => Promise<unknown>>;
  loading: Record<string, boolean>;
  error: {
    value: JsonRenderActionError | null;
  };
}
export interface JsonRenderActionError {
  action: string;
  error: unknown;
}
export interface JsonRenderDockMountOptions {
  entry: unknown;
  container: HTMLElement;
  context: {
    rpc: any;
  };
}
export interface JsonRenderDockRendererOptions {
  registry?: ComponentRegistry;
}
// #endregion

// #region Types
export type JrComponent<P = Record<string, unknown>> = (_: BaseComponentProps<P>) => VNodeChild;
export type JsonRenderDockRenderer = (_: JsonRenderDockMountOptions) => Promise<{
  dispose?: () => void;
}>;
// #endregion

// #region Functions
export declare function createActionBridge(_: ActionBridgeRpc, _?: {
  interactive?: boolean;
}): JsonRenderActionBridge;
export declare function createJsonRenderDockRenderer(_?: JsonRenderDockRendererOptions): JsonRenderDockRenderer;
export declare function createRenderer(_?: CreateRendererOptions): import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export declare function sanitizeSpec(_: Spec, _?: ComponentRegistry): Spec;
// #endregion

// #region Variables
export declare const Badge: JrComponent<BadgeProps>;
export declare const baseRegistry: ComponentRegistry;
export declare const Button: JrComponent<ButtonProps>;
export declare const Card: JrComponent<CardProps>;
export declare const CodeBlock: JrComponent<CodeBlockProps>;
export declare const DataTable: JrComponent<DataTableProps>;
export declare const Divider: JrComponent<{
  label?: string;
}>;
export declare const ERROR_COMPONENT_TYPE: string;
export declare const Icon: JrComponent<IconProps>;
export declare const JsonRenderView: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
  spec: {
    type: PropType<Spec | null>;
    default: null;
  };
  rpc: {
    type: PropType<ActionBridgeRpc>;
    required: true;
  };
  registry: {
    type: PropType<ComponentRegistry>;
    default: () => ComponentRegistry;
  };
  viewId: {
    type: StringConstructor;
    default: string;
  };
  interactive: {
    type: BooleanConstructor;
    default: boolean;
  };
  loading: {
    type: BooleanConstructor;
    default: boolean;
  };
  connectionError: {
    type: PropType<string | null>;
    default: null;
  };
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
  [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
  spec: {
    type: PropType<Spec | null>;
    default: null;
  };
  rpc: {
    type: PropType<ActionBridgeRpc>;
    required: true;
  };
  registry: {
    type: PropType<ComponentRegistry>;
    default: () => ComponentRegistry;
  };
  viewId: {
    type: StringConstructor;
    default: string;
  };
  interactive: {
    type: BooleanConstructor;
    default: boolean;
  };
  loading: {
    type: BooleanConstructor;
    default: boolean;
  };
  connectionError: {
    type: PropType<string | null>;
    default: null;
  };
}>> & Readonly<{}>, {
  spec: Spec | null;
  registry: ComponentRegistry;
  viewId: string;
  interactive: boolean;
  loading: boolean;
  connectionError: string | null;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export declare const KeyValueTable: JrComponent<KeyValueTableProps>;
export declare const Progress: JrComponent<ProgressProps>;
export declare const Stack: JrComponent<StackProps>;
export declare const Switch: JrComponent<SwitchProps>;
export declare const Text: JrComponent<TextProps>;
export declare const TextInput: JrComponent<TextInputProps>;
export declare const Tree: JrComponent<TreeProps>;
export declare const UNSUPPORTED_COMPONENT_TYPE: string;
// #endregion