///
import { Attrs, ExecutionContext, ExtensibleObject, Interpolation, IStyledComponent, IStyledComponentFactory, KnownTarget, Runtime, StyledOptions, StyledTarget, Styles } from '../types';
export interface Styled, DerivedProps = Target extends KnownTarget ? React.ComponentProps : unknown, OuterProps extends {} = {}, OuterStatics = unknown> {
(initialStyles: Styles, ...interpolations: Interpolation[]): IStyledComponent & OuterStatics & Statics;
attrs(attrs: Attrs): Styled;
withConfig(config: StyledOptions): Styled;
}
export default function constructWithOptions, DerivedProps = Target extends KnownTarget ? React.ComponentProps : unknown, OuterProps = unknown, // used for styled<{}>().attrs() so attrs() gets the generic prop context
OuterStatics = unknown>(componentConstructor: IStyledComponentFactory, tag: Target, options?: StyledOptions): {
(initialStyles: Styles, ...interpolations: Interpolation[]): IStyledComponent & OuterStatics & Statics;
attrs(attrs: Attrs): any;
/**
* If config methods are called, wrap up a new template function and merge options */
withConfig(config: StyledOptions): any;
};