import type { Ref } from 'react';
import { type ComponentCSSPropsConfig, type CSSPropType, type GDSComponent } from '@graphprotocol/gds-css';
export type PassedValues<C extends GDSComponent> = {
    [K in keyof ComponentCSSPropsConfig<C>]?: CSSPropType<ComponentCSSPropsConfig<C>[K]> | undefined;
};
export type PropValues<P extends PassedValues<GDSComponent>> = {
    [K in keyof P]: NonNullable<P[K]>;
};
/**
 * Hook to observe and track CSS prop values from the DOM. Returns a callback ref, a map of prop
 * values that updates when CSS properties change, and the array of CSS props.
 */
export declare function useCSSProps<C extends GDSComponent, P extends PassedValues<C>>(component: C, passedValues: P, options?: {
    ref?: Ref<HTMLElement> | undefined;
    disabled?: boolean | undefined;
}): readonly [import("react").RefCallback<HTMLElement>, PropValues<P>, (import("@graphprotocol/gds-css").CSSPropDefinition & {
    readonly name: string;
    readonly kebabName: string;
    readonly containerName: string;
    readonly cssProperty: string;
    readonly initialValue: string | number | boolean;
    readonly own: boolean;
    readonly polyfillAttribute: string;
})[]];
//# sourceMappingURL=useCSSProps.d.ts.map