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