import type { RunCodeInput, SubmitCodeInput } from "./client.js"; import type { Clock, IdGenerator } from "../runtime/abstractions.js"; import type { CredentialProvider } from "../runtime/credentials.js"; import type { LockStore } from "../runtime/file-lease-lock.js"; import type { OperationStore } from "../runtime/operation-store.js"; import type { RateLimiter } from "../runtime/rate-limiter.js"; import type { TransportPolicy } from "../runtime/transport-policy.js"; import type { OperationStatus, Region } from "../types.js"; type LedgerOperationState = "prepared" | "confirmed" | "dispatch_intent" | "dispatched" | "polling" | "completed" | "unknown" | "failed" | "cancelled"; interface StoredOperation extends Omit { state: LedgerOperationState; } export declare const LEETCODE_WRITE_ENDPOINTS: Readonly>; export declare const LEETCODE_WRITE_OPERATIONS: Readonly<{ run: "POST interpret_solution then GET check"; submit: "POST submit then GET check"; }>; export type LeetCodeWriteFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise; export interface OperationStoreFactoryContext { readonly profileId: string; readonly region: Region; readonly namespace: string; readonly filePath: string; } export type OperationStoreFactory = (context: OperationStoreFactoryContext) => OperationStore; export interface LeetCodeWriteAdapterOptions { fetch?: LeetCodeWriteFetch; credentialProvider?: CredentialProvider; storageDirectory?: string; operationStoreFactory?: OperationStoreFactory; rateLimiter?: RateLimiter; transportPolicy?: TransportPolicy; lockStore?: LockStore; clock?: Clock; idGenerator?: IdGenerator; requestTimeoutMs?: number; maxResponseBytes?: number; lockTtlMs?: number; lockWaitTimeoutMs?: number; } export interface LeetCodeWriteAdapter { readonly region: Region; runCode(input: RunCodeInput, signal?: AbortSignal): Promise; submitCode(input: SubmitCodeInput, signal?: AbortSignal): Promise; getOperationStatus(operationId: string, signal?: AbortSignal): Promise; close(): Promise; } export interface LeetCodeWriteAdapters { readonly global: LeetCodeWriteAdapter; readonly cn: LeetCodeWriteAdapter; forRegion(region: Region): LeetCodeWriteAdapter; } export declare function createLeetCodeWriteAdapter(region: Region, options?: LeetCodeWriteAdapterOptions): LeetCodeWriteAdapter; export declare function createLeetCodeWriteAdapters(options?: LeetCodeWriteAdapterOptions): LeetCodeWriteAdapters; export {}; //# sourceMappingURL=write-adapter.d.ts.map