import { type CSSObject } from '@emotion/serialize';
import { BorderBottomProperty, BorderLeftProperty, BorderRightProperty, BorderStyleProperty, BorderTopProperty } from 'csstype';
import { ColorValue } from '../components/utils/types';
/**
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties
 *
 * @todos
 * - Change `width` to be a `Length`
 * - Remove `null` from possible values
 * - Remove `undefined` from possible values and make fields optional
 */
export type BorderSideShorthandPropertyData = {
    width?: number | null | undefined;
    style: BorderStyleProperty;
    color?: ColorValue | null;
};
/**
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border
 *
 * @todos
 * - Remove `null` from possible values
 * - Remove `undefined` from possible values and make fields optional
 */
export type BorderPropertyData = {
    borderTop?: BorderSideShorthandPropertyData | BorderTopProperty<string | number> | null | undefined;
    borderRight?: BorderSideShorthandPropertyData | BorderRightProperty<string | number> | null | undefined;
    borderBottom?: BorderSideShorthandPropertyData | BorderBottomProperty<string | number> | null | undefined;
    borderLeft?: BorderSideShorthandPropertyData | BorderLeftProperty<string | number> | null | undefined;
};
export declare function borderPropertyDataToStyle(data: BorderPropertyData, defaultValue?: BorderPropertyData): CSSObject;
//# sourceMappingURL=border.d.ts.map