/// 
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;
};