import type { CSSProperties } from 'react';
import { type ComponentCSSProps, type ComponentCSSPropsConfig, type GDSComponent } from '@graphprotocol/gds-css';
type AllCSSProps<C extends GDSComponent> = {
    [K in keyof ComponentCSSProps<C>]-?: ComponentCSSProps<C>[K] | undefined;
};
/**
 * Validates the passed values object:
 *
 * - Rejects keys that are not CSS props.
 * - For props with a `defaultValue`, ensures they can be `undefined` (preventing destructuring
 *   defaults, which would break `default-*` utilities).
 * - For props without a `defaultValue`, allows any value since they're required.
 */
type ValidatePassedValues<C extends GDSComponent, T extends AllCSSProps<C>> = {
    [K in keyof T]: K extends keyof ComponentCSSPropsConfig<C> ? 'defaultValue' extends keyof ComponentCSSPropsConfig<C>[K] ? undefined extends T[K] ? T[K] : never : T[K] : `"${K & string}" is not a CSS prop of this component`;
};
/**
 * Returns attributes to spread on the root element of a component that supports CSS props.
 *
 * @param component The component metadata object created with createComponent.
 * @param passedValues Object containing all the CSS prop values from the component props.
 * @param style Existing style object to merge with.
 * @returns Object with attributes to spread on the component's root element.
 */
export declare function getCSSPropsAttributes<C extends GDSComponent, V extends AllCSSProps<C>>(component: C, passedValues: ValidatePassedValues<C, V>, style: CSSProperties | undefined): {
    style: CSSProperties;
};
export {};
//# sourceMappingURL=getCSSPropsAttributes.d.ts.map