import { Observable } from "rxjs"; import { Action } from "../../Store"; import { Omit } from "../../utils"; export declare const IO_REQUEST = "io/request"; export declare const IO_RESPONSE = "io/response"; export declare const IO_ERROR = "io/error"; export declare type REQUEST_TYPES = "GET" | "POST" | "DELETE"; export declare type ACTIONS = typeof IO_REQUEST | typeof IO_RESPONSE | typeof IO_ERROR; export interface RequestAction extends Action { url: string; method: REQUEST_TYPES; data?: T; meta?: any; } export interface ResponseAction extends Action { request: RequestAction; data: T; meta?: any; } export interface ErrorAction extends Action { request: RequestAction; error: Error; meta?: any; } export declare const request: (request: string, data?: T | undefined, meta?: any) => RequestAction; export declare const response: (data: T, request: RequestAction<{}>, meta?: any) => ResponseAction; export declare const error: (error: Error, request: RequestAction<{}>, meta?: any) => ErrorAction; export declare type ActionPayload = Omit; export declare const actionCreator: >(type: string) => (payload?: Pick> | undefined) => TAction; export declare const responseFrom: (url: string, method?: REQUEST_TYPES) => (obs$: Observable>) => Observable>;