interface Senha {
    loja?: string;
    senha: string;
    status: 'preparando' | 'pronto';
}
interface PlataError {
    errorID: string;
    msg: string;
}
type PlataResult<T> = T | PlataError;
interface ServerEvent {
    request: string;
    senhas?: Senha[];
    userHash?: string;
    erro?: PlataError;
}

interface UsePedidoEventosProps {
    token: string;
    eventSourceUrl: string;
    onSenhasParaExibir: (senhas: Senha[]) => unknown;
    onError: (err: PlataError) => unknown;
}
declare function usePedidoEventos(props: UsePedidoEventosProps): {
    iniciar: (tipoEvento: "sse" | "ws") => void;
    userHash: string;
    senhas: Senha[];
};

declare function useFilaExibicaoSenha(): {
    senhaExibicao: Senha | null;
    adicionarSenhas: (novas: Senha[]) => void;
    fimExibicao: () => void;
};

export { type PlataError, type PlataResult, type Senha, type ServerEvent, type UsePedidoEventosProps, useFilaExibicaoSenha, usePedidoEventos };
