import type { CredentialProvider } from "../runtime/credentials.js"; import type { TransportPolicy } from "../runtime/transport-policy.js"; import type { NotesCapability, NotesDocument, NotesReadInput, NotesWriteInput, Region, UserNoteMutationResult, UserNotesCreateInput, UserNotesGetInput, UserNotesGetResult, UserNotesSearchInput, UserNotesSearchResult, UserNotesUpdateInput } from "../types.js"; export declare const LEETCODE_CN_NOTES_ENDPOINT = "https://leetcode.cn/graphql/"; export declare const LEETCODE_CN_NOTES_MAX_BYTES: number; export declare const LEETCODE_CN_USER_NOTE_MAX_BYTES = 200000; export declare const LEETCODE_MANAGED_NOTE_SUMMARY = "pi-leetcode-tools-state:v1"; export type NotesFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise; export type ResolveQuestionId = (titleSlug: string, signal?: AbortSignal) => string | Promise; export interface LeetCodeNotesPortOptions { credentialProvider: CredentialProvider; resolveQuestionId?: ResolveQuestionId; accountProfileId?: string; fetch?: NotesFetch; transportPolicy?: TransportPolicy; requestTimeoutMs?: number; maxResponseBytes?: number; configured?: boolean; } export interface LeetCodeNotesPort { readonly region: Region; getCapability(runtimeAvailable: boolean): NotesCapability; read(input: NotesReadInput, signal?: AbortSignal): Promise; write(input: NotesWriteInput, signal?: AbortSignal): Promise; } export interface LeetCodeNotesPorts { readonly global: LeetCodeNotesPort; readonly cn: LeetCodeNotesPort; forRegion(region: Region): LeetCodeNotesPort; } /** * Arbitrary personal notes belonging to the current authenticated CN account. * This is deliberately separate from the revisioned state NotesPort: it has no * titleSlug resolver, managed summary, revision, merge, or compare-and-set * semantics. */ export interface LeetCodeUserNotesPort { readonly region: "cn"; search(input: UserNotesSearchInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; get(input: UserNotesGetInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; create(input: UserNotesCreateInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; update(input: UserNotesUpdateInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; } export declare class LeetCodeCnNotesPort implements LeetCodeNotesPort, LeetCodeUserNotesPort { #private; readonly region: "cn"; constructor(options: LeetCodeNotesPortOptions); getCapability(runtimeAvailable: boolean): NotesCapability; search(input: UserNotesSearchInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; get(input: UserNotesGetInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; create(input: UserNotesCreateInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; update(input: UserNotesUpdateInput, signal?: AbortSignal, expectedAccountProfileId?: string): Promise; read(input: NotesReadInput, signal?: AbortSignal): Promise; write(input: NotesWriteInput, signal?: AbortSignal): Promise; } export declare function createLeetCodeNotesPorts(options: LeetCodeNotesPortOptions): LeetCodeNotesPorts; export declare function createLeetCodeUserNotesPort(options: Omit): LeetCodeUserNotesPort; //# sourceMappingURL=notes-port.d.ts.map