import { type Effects, type GradientMaterial, type TypographyDescriptor } from '@charcoal-ui/foundation';
export declare const GRADIENT_DIRECTIONS: readonly ["to top", "to bottom", "to left", "to right"];
export type GradientDirection = (typeof GRADIENT_DIRECTIONS)[number];
export declare function transparentGradient(color: string, defaultDirection?: GradientDirection): (direction?: GradientDirection | object) => import("polished/lib/types/style").Styles;
export declare function gradient(toDirection?: GradientDirection): (value: GradientMaterial) => import("polished/lib/types/style").Styles;
export declare function applyEffectToGradient(effect: Effects): (value: GradientMaterial) => GradientMaterial;
export declare function applyEffect(baseColor: string | null, effects: Effects): string;
/**
 * affix `px` unit
 *
 * @param value pixel
 */
export declare function px(value: number): string;
/**
 * affix `s` unit
 *
 * @param value second
 */
export declare function dur(value: number): string;
export declare const notDisabledSelector = "&:not(:disabled):not([aria-disabled]), &[aria-disabled=false]";
export declare const disabledSelector = "&:disabled, &[aria-disabled]:not([aria-disabled=false])";
/**
 * Construct media query from breakpoint
 */
export declare function maxWidth(breakpoint: number): string;
/**
 * Derive half-leading from typography size
 */
export declare const halfLeading: ({ fontSize, lineHeight }: TypographyDescriptor) => number;
/**
 * Namespaced custom property
 */
export declare const customPropertyToken: (id: string, modifiers?: readonly string[]) => `--charcoal-${string}`;
/**
 * @example
 * ```js
 * mapKeys({ a: 'aa', b: 'bb' }, (key) => key.toUpperCase()) // => { A: "aa", B: "bb" }
 * ````
 */
export declare function mapKeys<V, K extends string>(object: Record<string, V>, callback: (key: string) => K): Record<K, V>;
/**
 * @example
 * ```js
 * mapObject({ a: 'aa', b: 'bb', c: 'cc' }, (key, value) =>
 *   key === 'b' ? undefined : [key + '1', value.toUpperCase()]
 * ) // => { a1: "AA", c1: "CC" }
 * ```
 */
export declare function mapObject<SourceKey extends string, SourceValue, DestKey extends string, DestValue>(source: Record<SourceKey, SourceValue>, callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue] | null | undefined): Record<DestKey, DestValue>;
/**
 * @example
 * ```js
 * flatMapObject({ a: 'aa', b: 'bb' }, (key, value) => [
 *   [key + '1', value + '1'],
 *   [key + '2', value + '2'],
 * ]) // => { a1: "aa1", a2: "aa2", b1: "bb1", b2: "bb2" }
 * ```
 */
export declare function flatMapObject<SourceKey extends string, SourceValue, DestKey extends string, DestValue>(source: Record<SourceKey, SourceValue>, callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue][]): Record<DestKey, DestValue>;
/**
 * @example
 * ```ts
 * filterObject(
 *   { a: 'aa', b: 'bb', c: 'cc' },
 *   (value): value is string => value !== 'bb'
 * ) // => { a: "aa", c: "cc" }
 * ```
 */
export declare function filterObject<Source, Dest extends Source>(source: Record<string, Source>, fn: (value: Source) => value is Dest): Record<string, Dest>;
//# sourceMappingURL=index.d.ts.map