import { type ReactNode } from 'react'; import { type StyleProp, type ViewStyle } from 'react-native'; export declare const DepositActionMotion: import("react").Context; interface ActionPhase { /** What the slot wears now; the next phase crosses from it. */ fillColor: string | null; /** What a provider's own control in the slot is painted, for when the slot's * cover comes off and that control is what the user is looking at. */ controlFill: string | null; } /** * The colour the deposit action is painted, carried across the components that * take turns filling its slot — a waiting state, a pill, a provider's own * button. Each new one picks the tween up where the last left off, so a phase * change reads as one control changing colour rather than a swap. */ export declare function DepositActionPhaseProvider({ children, }: { children: ReactNode; }): import("react").JSX.Element; export declare function useDepositActionPhase(): ActionPhase | null; /** * For a control that paints its own fill in the action's slot — a provider's * hosted button, which no layer of ours draws. Pass `null` where it isn't * standing in the slot. */ export declare function useDepositActionControlFill(fill: string | null): void; export declare function DepositActionLayers({ stateKey, fillColor, radius, borderCurve, backdropColor, fillOpacity, style, contentStyle, contentOpacity, children, }: { /** Changes when the content does, replaying its fade. */ stateKey: string; /** What the fill wears in this phase; the tween runs to it. */ fillColor: string; radius: number; borderCurve?: ViewStyle['borderCurve']; /** Opaque backing, for a fill a dimmed state makes see-through. */ backdropColor?: string; fillOpacity?: number; style?: StyleProp; contentStyle?: StyleProp; contentOpacity?: number; children: ReactNode; }): import("react").JSX.Element; export {}; //# sourceMappingURL=DepositActionMotion.d.ts.map