/************
Processor: ts
************/

import * as __beyond_dep_ns_0 from 'react';
import __beyond_dep_def_0 from 'react';
import * as __beyond_dep_ns_1 from 'pragmate-ui/base';
// button-group/button-group.tsx
declare namespace ns_0 {
  /// <reference types="react" />
  import IButtonGroupProps = ns_2.IButtonGroupProps;
  export function ButtonGroup({
    orientation,
    children,
    onChange,
    ...props
  }: IButtonGroupProps): JSX.Element;
}


// button-group/context.tsx
declare namespace ns_1 {
  import React = __beyond_dep_def_0;
  interface IButtonGroupContext {
    active?: any;
    selected: number;
    setSelected: any;
  }
  export const ButtonGroupContext: React.Context<IButtonGroupContext>;
  export const useButtonGroupContext: () => IButtonGroupContext;
  export {};
}


// button-group/type.ts
declare namespace ns_2 {
  import IPUIProps = __beyond_dep_ns_1.IPUIProps;
  export interface IButtonGroupProps extends Omit<IPUIProps<IButtonGroupProps>, 'size'> {
    size?: 'small' | 'medium' | 'tall';
    orientation?: 'row' | 'column';
    selected?: number;
    disabled?: boolean;
    index?: number;
    sizing?: string;
  }
}


// button/button.tsx
declare namespace ns_3 {
  import React = __beyond_dep_def_0;
  import IButtonProps = ns_4.IButtonProps;
  export const Button: React.ForwardRefExoticComponent<IButtonProps & React.RefAttributes<HTMLButtonElement>>;
}


// button/interface.ts
declare namespace ns_4 {
  /// <reference types="react" />
  export type PuiIcon = string | {
    viewBox: string;
    icon: string;
    name?: string;
  };
  export interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    data?: Record<string, any>;
    label?: React.ReactNode;
    children?: React.ReactNode;
    icon?: PuiIcon;
    loading?: boolean;
    type?: 'button' | 'submit' | 'reset';
    fetching?: boolean;
    variant?: string;
    bordered?: boolean;
    sizing?: 'sm' | 'md' | 'lg' | 'xs';
    disabled?: boolean;
    block?: boolean;
    index?: number;
    title?: string;
  }
}


// conditional-container.tsx
declare namespace ns_5 {
  import React = __beyond_dep_def_0;
  interface IConditionalContainerProps {
    condition: string | boolean | (() => string | boolean);
    options: Record<string, React.ReactElement>;
    placeholder?: React.ReactElement;
    ternary?: boolean;
  }
  export function ConditionalContainer({
    condition,
    options,
    placeholder,
    ternary
  }: IConditionalContainerProps): any;
  export {};
}


// hooks/use-media-query.ts
declare namespace ns_6 {
  export function useMediaQuery(): string;
}


// html-wrapper.tsx
declare namespace ns_7 {
  import React = __beyond_dep_def_0;
  interface HtmlRenderProps<T extends HTMLElement = HTMLElement> extends React.HTMLAttributes<T> {
    children: string;
    /**
     * @deprecated
     */
    tag?: keyof JSX.IntrinsicElements;
    as?: keyof JSX.IntrinsicElements;
    params?: Record<string, string>;
  }
  export function HtmlWrapper({
    className,
    children,
    params,
    tag,
    as
  }: HtmlRenderProps): React.JSX.Element;
  export {};
}


// link.tsx
declare namespace ns_8 {
  import React = __beyond_dep_def_0;
  interface ILinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
    onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void | boolean;
  }
  export function Link({
    href,
    ...props
  }: ILinkProps): JSX.Element;
  export {};
}


// responsive-container.tsx
declare namespace ns_9 {
  import React = __beyond_dep_def_0;
  interface ISpecs {
    xs?: React.ComponentType | null;
    sm?: React.ComponentType | null;
    md?: React.ComponentType | null;
    lg?: React.ComponentType | null;
  }
  export function ResponsiveContainer(props: Partial<ISpecs>): React.JSX.Element;
  export {};
}


// spinner.tsx
declare namespace ns_10 {
  import React = __beyond_dep_def_0;
  import RefAttributes = __beyond_dep_ns_0.RefAttributes;
  import IPUIProps = __beyond_dep_ns_1.IPUIProps;
  export interface IProps extends Omit<IPUIProps<IProps>, 'size'> {
    color?: string;
    type?: string;
    size?: 'xs' | 'md' | 'lg' | 'xl';
    active: boolean;
  }
  export const Spinner: React.FC<IProps & RefAttributes<unknown>>;
}


// use-ripple.tsx
declare namespace ns_11 {
  import React = __beyond_dep_def_0;
  export function useRipple(title: string, ref?: React.RefObject<HTMLButtonElement>): React.RefObject<HTMLButtonElement>;
}


export import ButtonGroup = ns_0.ButtonGroup;
export import Button = ns_3.Button;
export import IButtonProps = ns_4.IButtonProps;
export import ConditionalContainer = ns_5.ConditionalContainer;
export import useMediaQuery = ns_6.useMediaQuery;
export import HtmlWrapper = ns_7.HtmlWrapper;
export import Link = ns_8.Link;
export import ResponsiveContainer = ns_9.ResponsiveContainer;
export import Spinner = ns_10.Spinner;

export declare const hmr: {on: (event: string, listener: any) => void, off: (event: string, listener: any) => void };