import type { ComponentType, ComponentProps, JSXElementConstructor } from 'react';
import type { AnyStyledComponent, StyledComponent, StyledComponentProps, StyledComponentInnerComponent, StyledComponentInnerOtherProps, StyledComponentInnerAttrs } from 'styled-components';
type InferStyledComponentProps<C extends AnyStyledComponent> = StyledComponentProps<StyledComponentInnerComponent<C>, any, StyledComponentInnerOtherProps<C>, StyledComponentInnerAttrs<C>> & {
    as?: never | undefined;
    forwardedAs?: never | undefined;
};
export type InferComponentProps<T> = Omit<T extends AnyStyledComponent ? InferStyledComponentProps<T> : T extends keyof JSX.IntrinsicElements | JSXElementConstructor<any> ? ComponentProps<T> : never, 'ref'>;
export type PolymorphicStyledComponent<BaseComponent extends AnyStyledComponent, AsComponent extends ComponentType<any>> = StyledComponent<StyledComponentInnerComponent<AsComponent>, any, InferStyledComponentProps<BaseComponent>, never>;
export {};
