/// import { Attrs, BaseObject, ExecutionProps, Interpolation, IStyledComponent, IStyledComponentFactory, KnownTarget, NoInfer, Runtime, StyledOptions, StyledTarget, Styles, Substitute } from '../types'; type AttrsResult> = T extends (...args: any) => infer P ? P extends object ? P : never : T extends object ? T : never; /** * Based on Attrs being a simple object or function that returns * a prop object, inspect the attrs result and attempt to extract * any "as" prop usage to modify the runtime target. */ type AttrsTarget, FallbackTarget extends StyledTarget, Result extends ExecutionProps = AttrsResult> = Result extends { as: infer RuntimeTarget; } ? RuntimeTarget extends KnownTarget ? RuntimeTarget : FallbackTarget : FallbackTarget; export interface Styled, OuterProps extends object, OuterStatics extends object = BaseObject> { (initialStyles: Styles>>, ...interpolations: Interpolation>>[]): IStyledComponent> & OuterStatics & Statics & (R extends 'web' ? Target extends string ? {} : Omit> : {}); attrs: , PrivateAttrsArg extends Attrs = Attrs, PrivateResolvedTarget extends StyledTarget = AttrsTarget>(attrs: PrivateAttrsArg) => Styled>, Props> : PrivateMergedProps, OuterStatics>; withConfig: (config: StyledOptions) => Styled; } export default function constructWithOptions, OuterProps extends object = Target extends KnownTarget ? React.ComponentPropsWithRef : BaseObject, OuterStatics extends object = BaseObject>(componentConstructor: IStyledComponentFactory, object, any>, tag: StyledTarget, options?: StyledOptions): Styled; export {};