import { ConditionState, type ConditionDetailedData } from '@azuro-org/toolkit';
export type UseConditionsStateProps = {
    conditionIds: string[];
    initialStates?: Record<string, ConditionState>;
    conditions?: never;
} | {
    conditions: Pick<ConditionDetailedData, 'conditionId' | 'state' | 'hidden'>[];
    initialStates?: never;
    conditionIds?: never;
};
export type ConditionsStateData = {
    states: Record<string, ConditionState>;
    statesMap: Record<string, {
        state: ConditionState;
        hidden: boolean;
    }>;
};
/**
 * Watch real-time state updates for a list of conditions.
 * Subscribes to condition updates via websocket and tracks state changes (Active, Stopped, Resolved, etc.).
 * Requires `FeedSocketProvider` and `ConditionUpdatesProvider` (both are included in `AzuroSDKProvider`).
 *
 * Returns `data` - a map of condition IDs to their current state.
 * Returns `conditionsMap` - a map `{ [conditionId]: { state: ConditionState, hidden: boolean } }` of conditions.
 *
 * The `hidden` field indicates whether a condition may be hidden from the game markets list.
 * It starts as `true` for stopped secondary conditions in `ConditionDetailedData`.
 * When a socket update arrives for a hidden condition, it is set back to `false` —
 * meaning the condition is still alive and was only temporarily stopped by the provider.
 *
 * - Docs: https://gem.azuro.org/hub/apps/sdk/watch-hooks/useConditionsState
 *
 * @example
 * import { useConditionState } from '@azuro-org/sdk'
 * import { ConditionState, type ConditionDetailedData } from '@azuro-org/toolkit'
 *
 * // best approach for the list of game's markets
 * const { data, conditionsMap, isFetching } = useConditionState({
 *   // Pick<ConditionDetailedData, 'conditionId' | 'state' | 'hidden'>[]
 *   conditions,
 * })
 *
 * // OR if you have a condition ID list only, like in the betslip
 * const { data, conditionsMap, isFetching } = useConditionState({
 *   conditionIds: [ '123...', '456...' ],
 *   // optional, if not provided, it will fetch the initial states from the API
 *   initialStates: [ ConditionState.Active, ConditionState.Stopped ],
 * })
 * */
export declare const useConditionsState: ({ conditionIds: _conditionIds, initialStates, conditions }: UseConditionsStateProps) => {
    data: Record<string, ConditionState>;
    conditionsMap: Record<string, {
        state: ConditionState;
        hidden: boolean;
    }>;
    isFetching: boolean;
};
