import { type BackendEndpoint, type Variant } from '@myparcel-pdk/common';
import { type OneOrMore, type PromiseOr } from '@myparcel/ts-utils';
import { type ActionParameters, type ActionResponse, type AdminInstance, type AnyActionDefinition, type BackendEndpointResponse, type EndpointAdminActionMap, type MaybeAdminAction, type PdkNotification } from '../../types';
import { type AdminAction } from '../../data';
export type ResolvedAdminAction = A extends MaybeAdminAction ? A : A extends keyof EndpointAdminActionMap ? EndpointAdminActionMap[A] : never;
export interface ActionContext = ResolvedAdminAction> {
action: AnyActionDefinition;
instance: AdminInstance;
notifications: Record;
parameters: ActionParameters;
}
export interface ActionContextWithResponse extends ActionContext {
response: ActionResponse;
}
export type PlainModifier = string | number | undefined;
type ModifierCallback = (context: ActionContext) => PlainModifier;
export type QueryModifier = PlainModifier | (A extends BackendEndpoint ? ModifierCallback : never);
export type QueryHandler = (context: ActionContext) => PromiseOr> | void>;
export {};