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

import * as __beyond_dep_ns_0 from 'react';
import __beyond_dep_def_0 from 'react';
// context.ts
declare namespace ns_0 {
  import React = __beyond_dep_ns_0;
  import IContext = ns_6.IContext;
  export const ImageContext: React.Context<IContext>;
  export const useImageContext: () => IContext;
}


// error/index.tsx
declare namespace ns_1 {
  import React = __beyond_dep_def_0;
  export function Error(): React.JSX.Element;
}


// hooks/use-loader.tsx
declare namespace ns_2 {
  export function useLoader(src: any): {
    status: "loading" | "ready" | "error";
  };
}


// hooks/use-loading.ts
declare namespace ns_3 {
  import IInitialState = ns_6.IInitialState;
  import IProps = ns_6.IProps;
  import ISetState = ns_6.ISetState;
  export function useLoading(props: IProps): [IInitialState, ISetState];
}


// img.tsx
declare namespace ns_4 {
  import React = __beyond_dep_def_0;
  export function Img(): React.JSX.Element;
}


// index.tsx
declare namespace ns_5 {
  /// <reference types="react" />
  import IProps = ns_6.IProps;
  export function Image(props?: IProps): JSX.Element;
}


// interfaces/index.ts
declare namespace ns_6 {
  import ImgHTMLAttributes = __beyond_dep_ns_0.ImgHTMLAttributes;
  import SyntheticEvent = __beyond_dep_ns_0.SyntheticEvent;
  import ReactNode = __beyond_dep_ns_0.ReactNode;
  export interface IProps extends ImgHTMLAttributes<HTMLImageElement> {
    graphSrc?: string;
    size?: string;
    children?: ReactNode;
    onError?: (e: SyntheticEvent<Element, Event>) => void;
    sources?: Array<ISrcSet>;
    sizeLoading?: {
      height: string;
      width: string;
    };
  }
  export interface IInitialState {
    size?: string;
    error?: boolean;
    loaded?: boolean;
    url?: string;
    onload?: undefined;
    src?: string;
    htmlLoaded?: boolean;
    onerror?: undefined;
  }
  export type ISetState = React.Dispatch<React.SetStateAction<IInitialState>>;
  export interface IContext extends IProps {
    setState?: ISetState;
    status: 'loading' | 'ready' | 'error';
    src: any;
    state?: IInitialState;
  }
  export interface ISrcSet {
    maxWidth?: number;
    minWidth?: number;
    srcSet: string;
  }
}


// sources/index.tsx
declare namespace ns_7 {
  import React = __beyond_dep_def_0;
  export function Sources(): React.JSX.Element;
}


// sources/item.tsx
declare namespace ns_8 {
  import React = __beyond_dep_def_0;
  import ISrcSet = ns_6.ISrcSet;
  export function Item(props: ISrcSet): React.JSX.Element;
}


export import useLoader = ns_2.useLoader;
export import Image = ns_5.Image;

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