import type { StandardSchemaV1 } from "#compiled/@standard-schema/spec/index.js"; import type { SessionSchedule } from "#context/session-schedule.js"; import type { ScheduleClient, ScheduleClientCreate, ScheduleClientUpdate, DynamicSchedulesDefinition, ScheduleEnvelope, ScheduleScopeContext } from "#public/schedules/subscription.js"; export interface ScheduleBoundCallContext extends ScheduleScopeContext { readonly application: string; readonly collection: string; readonly operationId?: () => string; } export interface PreparedScheduleCreate { readonly displayName: string; readonly expression: import("#public/schedules/subscription.js").ScheduleTiming; readonly envelope: ScheduleEnvelope; } export interface PreparedScheduleUpdate { readonly name: string; readonly namespace: string; readonly expression?: import("#public/schedules/subscription.js").ScheduleTiming; readonly envelope?: ScheduleEnvelope; } export type PreparedScheduleWrite = PreparedScheduleCreate | PreparedScheduleUpdate; /** Internal preparation capabilities used by generated write approval. */ export interface ScheduleCollectionClient extends ScheduleClient { prepareCreate(input: ScheduleClientCreate): Promise>; create(input: ScheduleClientCreate, approved?: PreparedScheduleCreate): Promise; prepareUpdate(name: string, patch: ScheduleClientUpdate): Promise>; update(name: string, patch: ScheduleClientUpdate, approved?: PreparedScheduleUpdate): Promise; } export declare function createScheduleCollectionClient(definition: DynamicSchedulesDefinition, TPrepared>, callContext: ScheduleBoundCallContext): ScheduleCollectionClient; export declare function assertScheduleManagementAllowed(schedule?: SessionSchedule): void;