import type { AnchorHTMLAttributes, ButtonHTMLAttributes, FormHTMLAttributes, HTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, SelectHTMLAttributes, TextareaHTMLAttributes } from 'react'; import type { GetRef } from './interfaces/GetRef'; import type { GetBaseStyles, GetNonStyledProps, GetStaticConfig, GetStyledVariants, GetVariantValues, InferStyleProps, InferStyledProps, StackStyle, StaticConfigPublic, StylableComponent, StyledContext, TamaDefer, TamaguiComponent, TamaguiComponentPropsBase, TextStyle, TextStylePropsBase, ThemeValueByCategory, VariantDefinitions, VariantSpreadFunction } from './types'; type AreVariantsUndefined = Required extends { _isEmpty: 1; } ? true : false; type GetVariantAcceptedValues = V extends object ? { [Key in keyof V]?: V[Key] extends VariantSpreadFunction ? Val : GetVariantValues; } : undefined; type TextLikeElements = 'a' | 'abbr' | 'b' | 'bdi' | 'bdo' | 'cite' | 'code' | 'data' | 'del' | 'dfn' | 'em' | 'i' | 'ins' | 'kbd' | 'label' | 'mark' | 'q' | 's' | 'samp' | 'small' | 'span' | 'strong' | 'sub' | 'sup' | 'time' | 'u' | 'var'; type ConflictingHTMLProps = 'color' | 'display' | 'height' | 'width' | 'size' | 'left' | 'right' | 'top' | 'bottom' | 'translate' | 'content'; type HTMLElementSpecificProps = T extends 'a' ? Omit, ConflictingHTMLProps> : T extends 'button' ? Omit, ConflictingHTMLProps> : T extends 'input' ? Omit, ConflictingHTMLProps> : T extends 'select' ? Omit, ConflictingHTMLProps> : T extends 'textarea' ? Omit, ConflictingHTMLProps> : T extends 'form' ? Omit, ConflictingHTMLProps> : T extends 'label' ? Omit, ConflictingHTMLProps> : Omit, ConflictingHTMLProps>; type HTMLElementStyleBase = T extends TextLikeElements ? TextStyle : StackStyle; /** * styledHtml() for HTML element tags like 'a', 'button', 'div', etc. * Automatically provides element-specific props (href for anchors, type for buttons, etc.) * * @example * const StyledAnchor = styledHtml('a', { * color: '$blue10', * textDecorationLine: 'underline', * }) * // StyledAnchor now accepts `href` prop with proper typing * Link */ export declare function styledHtml | undefined = undefined>(tag: Tag, options?: Partial> & { name?: string; variants?: Variants; defaultVariants?: GetVariantAcceptedValues>; context?: StyledContext; }): TamaguiComponent, HTMLElementStyleBase, Variants extends undefined ? {} : AreVariantsUndefined> extends true ? {} : GetVariantAcceptedValues>, {}>; /** * styled() for creating Tamagui components from other components. */ declare function styled>(ComponentIn: ParentComponent, options?: Partial> & { name?: string; variants?: Variants | undefined; defaultVariants?: GetVariantAcceptedValues; context?: StyledContext; render?: string | React.ReactElement; }, config?: StyledConfig): TamaguiComponent, GetNonStyledProps, StyledConfig["accept"] extends Record ? GetBaseStyles & (StyledConfig["accept"] extends Record ? { [Key in keyof StyledConfig["accept"]]?: (Key extends keyof GetBaseStyles ? GetBaseStyles[Key] : never) | (StyledConfig["accept"][Key] extends "style" ? Partial> : StyledConfig["accept"][Key] extends "textStyle" ? Partial, StyledConfig>> : ThemeValueByCategory) | undefined; } : {}) : GetBaseStyles, AreVariantsUndefined extends true ? GetStyledVariants : AreVariantsUndefined> extends true ? Omit extends true ? {} : GetVariantAcceptedValues, "_isEmpty"> : { [Key_1 in Exclude, "_isEmpty"> | Exclude extends true ? {} : GetVariantAcceptedValues), "_isEmpty">]?: (Key_1 extends keyof GetStyledVariants ? GetStyledVariants[Key_1] : undefined) | (Key_1 extends keyof (AreVariantsUndefined extends true ? {} : GetVariantAcceptedValues) ? (AreVariantsUndefined extends true ? {} : GetVariantAcceptedValues)[Key_1] : undefined) | undefined; }, GetStaticConfig>; type StyledHtmlFactory = | undefined = undefined>(options?: Partial> & { name?: string; variants?: Variants; defaultVariants?: GetVariantAcceptedValues>; context?: StyledContext; }) => TamaguiComponent, HTMLElementStyleBase, Variants extends undefined ? {} : AreVariantsUndefined> extends true ? {} : GetVariantAcceptedValues>, {}>; type StyledHtmlFactories = { [K in keyof HTMLElementTagNameMap]: StyledHtmlFactory; }; declare const styledExport: typeof styled & StyledHtmlFactories; export { styledExport as styled }; //# sourceMappingURL=styled.d.ts.map