/// <reference types="mdx-js__react" />
import { MDXProviderComponents } from '@mdx-js/react';
export { MDXProviderComponents } from '@mdx-js/react';
import { ReactHTML, PropsWithChildren } from 'react';
import { CSSRules, Context } from 'twind';
export { theme } from 'twind';

declare type CSSProperties = CSSRules[string];
declare type StyledIntrinsicFactories = {
    [TIntrinsic in keyof ReactHTML]: StyledHTML<TIntrinsic>;
};
interface StyledElements extends StyledIntrinsicFactories {
    <TIntrinsic extends keyof ReactHTML>(elementType: TIntrinsic): StyledHTML<TIntrinsic>;
    <T extends keyof ReactHTML>(elementType: T, strings: TemplateStringsArray, ...interpolations: readonly MaybeThunk<MaybeArray<CSSProperties | string | number | Falsy>>[]): ReactHTML[T];
    <T extends keyof ReactHTML>(elementType: T, tokens: MaybeThunk<MaybeArray<CSSProperties | Falsy>>): ReactHTML[T];
    <T extends keyof ReactHTML>(elementType: T, ...tokens: readonly MaybeThunk<CSSProperties | Falsy>[]): ReactHTML[T];
    <P extends {} = {}>(component: (props: P) => JSX.Element | null): StyledComponent<P>;
    <P extends {} = {}>(component: (props: P) => JSX.Element | null, ...tokens: readonly MaybeThunk<CSSProperties | Falsy>[]): (props: P) => JSX.Element | null;
}
declare type Falsy = '' | 0 | -0 | false | null | undefined | void;
declare type MaybeArray<T> = T | readonly T[];
declare type MaybeThunk<T> = T | ((context: Context) => T);
interface StyledComponent<P extends {} = {}> {
    (strings: TemplateStringsArray, ...interpolations: readonly MaybeThunk<MaybeArray<CSSProperties | string | number | Falsy>>[]): (props: P) => JSX.Element | null;
    (tokens: MaybeThunk<MaybeArray<CSSProperties | Falsy>>): (props: P) => JSX.Element | null;
    (...tokens: readonly MaybeThunk<CSSProperties | Falsy>[]): (props: P) => JSX.Element | null;
}
interface StyledHTML<T extends keyof ReactHTML> {
    (strings: TemplateStringsArray, ...interpolations: readonly MaybeThunk<MaybeArray<CSSProperties | string | number | Falsy>>[]): ReactHTML[T];
    (tokens: MaybeThunk<MaybeArray<CSSProperties | Falsy>>): ReactHTML[T];
    (...tokens: readonly MaybeThunk<CSSProperties | Falsy>[]): ReactHTML[T];
}
declare const styled: StyledElements;
interface MDXProps extends PropsWithChildren<{
    components: MDXProviderComponents;
}> {
}

export { CSSProperties, MDXProps, StyledElements, StyledIntrinsicFactories, styled };
