import { BreakpointType } from '../../breakpoints/breakPoints'; import { FoundationTokenType } from '../../tokens/theme.token'; import { ProgressBarSize, ProgressBarVariant, ProgressBarType } from './types'; import { CSSObject } from 'styled-components'; /** * ProgressBar Tokens following the pattern: [target].CSSProp.[size].[variant].[type] * * Structure: * - target: container | linear | circular | label (defines what element the token applies to) * - CSSProp: overflow | borderRadius | height | backgroundColor | stroke | etc. * - size: small | medium | large (only for size-dependent properties) * - variant: solid | segmented (for linear progress bars) * - type: solid | segmented (for circular progress bars) * * Size-independent properties: overflow, backgroundColor, backgroundImage, stroke, color * Size-dependent properties: height, size, strokeWidth */ export type ProgressBarTokenType = { linear: { height: { [key in ProgressBarSize]: CSSObject['height']; }; fill: { backgroundColor: { [key in Exclude]: CSSObject['backgroundColor']; }; borderRadius: { [key in Exclude]: CSSObject['borderRadius']; }; }; empty: { backgroundColor: { [key in Exclude]: CSSObject['backgroundColor']; }; backgroundImage: { segmented: CSSObject['backgroundImage']; }; backgroundSize: { segmented: CSSObject['backgroundSize']; }; }; borderRadius: { [key in Exclude]: CSSObject['borderRadius']; }; }; circular: { size: { [key in ProgressBarSize]: CSSObject['width']; }; strokeWidth: { [key in ProgressBarSize]: number; }; stroke: { [key in ProgressBarType]: CSSObject['stroke']; }; background: { [key in ProgressBarType]: CSSObject['stroke']; }; dashArray: { [key in ProgressBarType]: string; }; dashOffset: { [key in ProgressBarType]: string; }; }; label: { fontSize: CSSObject['fontSize']; fontWeight: CSSObject['fontWeight']; color: CSSObject['color']; }; transition: string; }; export type ResponsiveProgressBarTokens = { [key in keyof BreakpointType]: ProgressBarTokenType; }; export declare const getProgressBarTokens: (foundationToken: FoundationTokenType) => ResponsiveProgressBarTokens;