import { CSSObject } from 'styled-components'; import { ThemeType } from '../../tokens'; import { AvatarSize, AvatarShape } from './types'; import { BreakpointType } from '../../breakpoints/breakPoints'; export type AvatarState = 'default' | 'online'; export type AvatarVariant = 'withImage' | 'withoutImage'; /** * Avatar Tokens following the design system pattern * * Pattern: component.[target].CSSProp.[size].[variant].[subType].[state].value * * Structure: * - gap: Spacing between avatar and slots * - avatar: Main avatar container properties * - text: Fallback text styling * - indicator: Online status indicator * - slot: Leading and trailing slot styling */ export type AvatarTokensType = { gap: CSSObject['gap']; container: { size: { [key in AvatarSize]: { width: CSSObject['width']; height: CSSObject['height']; }; }; backgroundColor: { [key in AvatarVariant]: { [key in AvatarState]: CSSObject['backgroundColor']; }; }; border: { [key in AvatarVariant]: { [key in AvatarState]: CSSObject['border']; }; }; borderRadius: { [key in AvatarShape]: CSSObject['borderRadius']; }; }; text: { color: { [key in AvatarState]: CSSObject['color']; }; fontSize: { [key in AvatarSize]: CSSObject['fontSize']; }; fontWeight: { [key in AvatarSize]: CSSObject['fontWeight']; }; }; indicator: { backgroundColor: { [key in AvatarState]: CSSObject['backgroundColor']; }; border: { [key in AvatarSize]: { [key in AvatarState]: { color: CSSObject['borderColor']; width: CSSObject['borderWidth']; }; }; }; size: { [key in AvatarSize]: { width: CSSObject['width']; height: CSSObject['height']; }; }; borderRadius: CSSObject['borderRadius']; boxShadow: CSSObject['boxShadow']; }; slot: { spacing: CSSObject['margin']; color: { [key in AvatarState]: CSSObject['color']; }; }; }; export type ResponsiveAvatarTokens = { [key in keyof BreakpointType]: AvatarTokensType; }; export declare const getAvatarTokens: (foundationToken: ThemeType) => ResponsiveAvatarTokens;