import { ColorValue as Color } from '../utils/types';
import { type ResponsiveValue } from '@makeswift/controls';
import { ResponsiveBackgroundsData } from '@makeswift/prop-controllers';
type BackgroundColorData = Color;
type BackgroundGradientStopData = {
    id: string;
    location: number;
    color: Color | null | undefined;
};
type BackgroundGradientData = {
    angle?: number;
    isRadial?: boolean;
    stops: Array<BackgroundGradientStopData>;
};
type BackgroundImageData = {
    publicUrl?: string;
    dimensions?: {
        width: number;
        height: number;
    } | null;
    position: {
        x: number;
        y: number;
    };
    size?: 'cover' | 'contain' | 'auto';
    repeat?: 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat';
    opacity?: number;
    parallax?: number;
};
type BackgroundVideoData = {
    url?: string;
    maskColor: Color | null | undefined;
    aspectRatio?: 'wide' | 'standard';
    opacity?: number;
    zoom?: number;
    parallax?: number;
};
type BackgroundData = {
    id: string;
    type: 'color';
    payload: BackgroundColorData | null | undefined;
} | {
    id: string;
    type: 'image';
    payload: BackgroundImageData | null | undefined;
} | {
    id: string;
    type: 'gradient';
    payload: BackgroundGradientData | null | undefined;
} | {
    id: string;
    type: 'video';
    payload: BackgroundVideoData | null | undefined;
};
export type BackgroundsData = Array<BackgroundData>;
export type BackgroundsPropControllerValue = ResponsiveValue<BackgroundsData>;
export declare function useBackgrounds(data: ResponsiveBackgroundsData | undefined): BackgroundsPropControllerValue | undefined;
export {};
//# sourceMappingURL=useBackgrounds.d.ts.map