import * as t from '@babel/types'; import type { Metadata, Tag } from '../types'; import type { CSSOutput } from './types'; export interface StyledTemplateOpts { /** * Class to be used for the CSS selector. */ classNames: t.Expression[]; /** * Tag for the Styled Component, for example "div" or user defined component. */ tag: Tag; /** * CSS variables to be passed to the `style` prop. */ variables: CSSOutput['variables']; /** * CSS sheets to be passed to the `CS` component. */ sheets: string[]; } /** * Returns a Styled Component AST. * * @param tag {Tag} Styled tag either an inbuilt or user define * @param cssOutput {CSSOutput} CSS and variables to place onto the component * @param meta {Metadata} Useful metadata that can be used during the transformation */ export declare const buildStyledComponent: (tag: Tag, cssOutput: CSSOutput, meta: Metadata) => t.Node;