import { query, status, Synnax as Client } from '@synnaxlabs/client';
import { CrudeTimeSpan, destructor, state, verbs } from '@synnaxlabs/x';
import { default as z } from 'zod';
import { InitialStatusDetailsContainer, Result, ResultStatus } from './result';
/** What an update implementation receives. */
export interface UpdateParams {
data: Input;
client: Client;
setStatus: (setter: state.SetArg>) => void;
onOptimisticComplete: (data: Output) => Promise;
}
/** Params for {@link createUpdate}. */
export type CreateUpdateParams = {
name: string;
verbs: verbs.Verbs;
update: (params: UpdateParams) => Promise