///
import { Observable, ObservedValueOf } from 'rxjs';
import { Auth, Apps } from '@aimee-blue/ab-contracts';
import { IJwt, decodeJwt } from '@aimee-blue/ab-auth';
import { ISocketEpicAttributes, ISocketEpicContext } from '../kit';
import { IAction } from '../action';
export interface IInjectedAuthDetails {
id: string;
auth?: IJwt;
}
export interface ISocketEpicWithAuth extends ISocketEpicAttributes {
(commands: Observable, ctx: ISocketEpicContext & IInjectedAuthDetails & D, ...rest: R): Observable;
}
export declare function epicWithAuth(allow: Auth.Role[], epic: E, deps?: {
verifyToken: (param: Auth.IVerifyParams) => Observable;
decodeJwt: typeof decodeJwt;
}): (...[cmd, ctx, ...rest]: Parameters) => Observable>>;