import { Attrs, BaseObject, ExecutionProps, Interpolation, IStyledComponent, IStyledComponentFactory, KnownTarget, MakeAttrsOptional, MergeProps, Runtime, StyledOptions, StyledTarget, Styles, TargetProps, WidenForUntypedTarget } 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, in out OuterProps extends object, out OuterStatics extends object = BaseObject, out AttrsKeys extends keyof any = never> { (initialStyles: Styles>>, ...interpolations: Interpolation>>[]): IStyledComponent, MakeAttrsOptional, AttrsKeys>>> & OuterStatics & Statics & (R extends 'web' ? Target extends string ? {} : Omit> : {}); attrs: , PrivateAttrsArg extends Attrs, PrivateMergedProps>> = Attrs, PrivateMergedProps>>, PrivateResolvedTarget extends StyledTarget = AttrsTarget>(attrs: PrivateAttrsArg) => Styled>, Props> : PrivateMergedProps, OuterStatics, AttrsKeys | keyof AttrsResult>; withConfig: (config: StyledOptions) => Styled; } export default function constructWithOptions, OuterProps extends object = TargetProps, OuterStatics extends object = BaseObject, AttrsKeys extends keyof any = never>(componentConstructor: IStyledComponentFactory, object, any>, tag: StyledTarget, options?: StyledOptions): Styled; export {};