import { IStateDump } from '@mcph/miix-std/dist/internal';
import { IInteractiveVersion } from './sync';
/**
 * Orientation is given to size() to determine the device orientation.
 * Landscape is the default orientation.
 */
export declare const enum ConnectState {
    Idle = 0,
    Active = 1,
}
/**
 * IInteractiveJoin is returned from Mixer with details for the user to use
 * to connect to Interactive.
 */
export interface IInteractiveJoin {
    /**
     * Primary websocket address for the participant.
     */
    address: string;
    /**
     * Address of static content to serve for this session.
     */
    contentAddress: string;
    /**
     * Address where live-updated resources are stored.
     */
    ugcAddress: string;
    /**
     * Access key for Interactive
     */
    key: string;
    /**
     * Version ID it's connecting to.
     */
    version: IInteractiveVersion;
}
/**
 * IConnectState is the state describing whether the controls are connected
 * to Mixer interactive.
 */
export interface IConnectState {
    state: ConnectState;
    /**
     * Nested controls state.
     */
    controlsState?: IStateDump;
    /**
     * Address where Interactive lives. A subset of the response given by
     * the Mixer backend on /api/v1/interactive/{channel}
     */
    join?: IInteractiveJoin;
    /**
     * Channel to connect to. Overrides the default, which is connecting to
     * the user's own channel.
     */
    channelOverride?: number;
}
export declare const enum Action {
    Connect = "CONNECT_CONNECT",
    Disconnect = "CONNECT_DISCONNECT",
    UpdateState = "CONNECT_UPDATE_STATE",
    SetChannel = "CONNECT_SET_CHANNEL",
}
export declare const initialState: {
    state: ConnectState;
};
export declare function reducer(state: IConnectState, action: any): IConnectState;
