import { ErrorResponse } from "../../../utils"; import { State } from "./state"; import { Action as TAction, StoreDispatchProps } from "../../../Store"; import { Dispatch } from "redux"; import { COMMANDS } from "../../../shared"; export declare namespace Actions { const REQUEST_GET = "io/request/linq8acm/flags/get"; const REQUEST_POST = "io/request/linq8acm/flags/post"; const RESPONSE_GET = "io/response/linq8acm/flags/get"; const RESPONSE_POST = "io/response/linq8acm/flags/post"; const EDIT = "io/edit/linq8acm/flags"; const POLL_START = "io/poll/linq8acm/outputs/start"; const POLL_STOP = "io/poll/linq8acm/outputs/stop"; type Requests = GetRequest | PostRequest; interface GetRequest extends TAction { } interface PostRequest extends TAction { data: Partial; exe?: { idx: number; cmd: COMMANDS; }; } interface GetResponse extends TAction { data: State.ServerResponse; } interface PostResponse extends TAction { data: ErrorResponse; } interface Edit extends TAction { data: Partial; } interface PollStart extends TAction { } interface PollStop extends TAction { } interface DispatchProps extends StoreDispatchProps { } const getRequest: (payload?: Pick | undefined) => GetRequest; const getResponse: (payload?: Pick | undefined) => GetResponse; const postRequest: (payload?: Pick | undefined) => PostRequest; const postResponse: (payload?: Pick | undefined) => PostResponse; const edit: (payload?: Pick | undefined) => Edit; const pollStart: (payload?: Pick | undefined) => PollStart; const pollStop: (payload?: Pick | undefined) => PollStop; function fetchRequest(): GetRequest; function fetchRequest(data: Partial): PostRequest; const exe: (idx: number, cmd: COMMANDS) => PostRequest; const bindDispatchProps: (dispatch: Dispatch) => { edit: (data: Partial) => Edit; fetch: (data?: Partial | undefined) => Requests; poll: (p: boolean) => PollStart | PollStop; calZeros: () => PostRequest; turnOn: (idx: number) => PostRequest; turnOff: (idx: number) => PostRequest; toggle: (idx: number) => PostRequest; pulse: (idx: number) => PostRequest; exe: (idx: number, cmd: COMMANDS) => PostRequest; }; }