import { WidthProperty } from 'csstype';
import { type CSSObject } from '@emotion/serialize';
import type { ResponsiveValueType as ExtractResponsiveValue } from '@makeswift/controls';
import type { LengthData, ResponsiveBorderRadiusData, ResponsiveMarginData, ResponsivePaddingData, ResponsiveValue, ResponsiveLengthData, ResponsiveTextStyleData } from '@makeswift/prop-controllers';
import { type Breakpoints, type FallbackStrategy } from '@makeswift/controls';
import { PaddingPropertyData } from '../../css/padding';
import { MarginPropertyData } from '../../css/margin';
import { BorderRadiusPropertyData } from '../../css/border-radius';
import { BorderPropertyData } from '../../css/border';
import { BorderPropControllerData } from '../hooks/useBorder';
import { ResponsiveBoxShadow } from '../hooks';
import { DropFirst } from './drop-first';
export declare function responsiveStyle<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>>(breakpoints: Breakpoints, responsiveValues: A, join: (values: {
    [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined;
}) => CSSObject, strategy?: FallbackStrategy<V>): CSSObject;
export declare function useResponsiveStyle<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>>(responsiveValues: A, join: (values: {
    [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined;
}) => CSSObject, strategy?: FallbackStrategy<V>): CSSObject;
export declare function responsiveWidth(breakpoints: Breakpoints, widthData: ResponsiveLengthData | undefined, defaultValue?: LengthData | WidthProperty<string | number>): CSSObject;
export declare function useResponsiveWidth(...args: DropFirst<Parameters<typeof responsiveWidth>>): CSSObject;
export declare function responsivePadding(breakpoints: Breakpoints, paddingData: ResponsivePaddingData | undefined, defaultValue?: PaddingPropertyData): CSSObject;
export declare function useResponsivePadding(...args: DropFirst<Parameters<typeof responsivePadding>>): CSSObject;
export declare function responsiveMargin(breakpoints: Breakpoints, marginData: ResponsiveMarginData | undefined, defaultValue?: MarginPropertyData): CSSObject;
export declare function useResponsiveMargin(...args: DropFirst<Parameters<typeof responsiveMargin>>): CSSObject;
export declare function responsiveBorderRadius(breakpoints: Breakpoints, borderRadiusData: ResponsiveBorderRadiusData | undefined, defaultValue?: BorderRadiusPropertyData): CSSObject;
export declare function useResponsiveBorderRadius(...args: DropFirst<Parameters<typeof responsiveBorderRadius>>): CSSObject;
export declare function useResponsiveBorder(borderData: BorderPropControllerData | undefined, defaultValue?: BorderPropertyData): CSSObject;
export declare function responsiveGridItem(breakpoints: Breakpoints, props: {
    grid: ResponsiveValue<{
        spans: number[][];
        count: number;
    }>;
    index: number;
    columnGap?: ResponsiveValue<LengthData>;
    rowGap?: ResponsiveValue<LengthData>;
}): CSSObject;
export declare function useResponsiveGridItem(...args: DropFirst<Parameters<typeof responsiveGridItem>>): CSSObject;
export declare function responsiveShadow(breakpoints: Breakpoints, value: ResponsiveBoxShadow | undefined): CSSObject;
export declare function useResponsiveShadow(...args: DropFirst<Parameters<typeof responsiveShadow>>): CSSObject;
export declare function responsiveTextStyle(breakpoints: Breakpoints, value: ResponsiveTextStyleData | undefined): CSSObject;
export declare function useResponsiveTextStyle(...args: DropFirst<Parameters<typeof responsiveTextStyle>>): CSSObject;
//# sourceMappingURL=responsive-style.d.ts.map