@nosana/kit
Version:
Nosana KIT
23 lines (22 loc) • 1.15 kB
TypeScript
import type { Account } from '@solana/kit';
import type { ProgramDeps } from '../../../../types.js';
import type { ProgramConfig } from '../../../../config/types.js';
import type { JobsProgram, Job, Market, Run } from '../JobsProgram.js';
import * as programClient from '../../../../generated_clients/jobs/index.js';
import { type MonitorEvent, type SimpleMonitorEvent } from './types.js';
export interface MonitorDeps {
deps: ProgramDeps;
config: ProgramConfig;
client: typeof programClient;
transformJobAccount: (jobAccount: Account<programClient.JobAccount>) => Job;
transformRunAccount: (runAccount: Account<programClient.RunAccount>) => Run;
transformMarketAccount: (marketAccount: Account<programClient.MarketAccount>) => Market;
mergeRunIntoJob: (job: Job, run: Run) => Job;
}
/**
* Factory function to create monitor functions
*/
export declare function createMonitorFunctions(get: JobsProgram['get'], runs: JobsProgram['runs'], monitorDeps: MonitorDeps): {
monitor(): Promise<[AsyncIterable<SimpleMonitorEvent>, () => void]>;
monitorDetailed(): Promise<[AsyncIterable<MonitorEvent>, () => void]>;
};