export * from './language'; export * from './question'; /** * 代码运行结果 */ /** * UI 绑定的测试用例(支持编辑) */ export interface UITestCase { id: string | number; label?: string; inputs: { name: string; value: string; }[]; expected: string; } /** * 运行时的测试用例 */ export interface TestCase { id: string | number; input: any[]; expected?: any; } /** * 单个用例的运行结果 */ export interface TestCaseResult { id: string | number; status: "passed" | "failed" | "error"; input: any[]; output: any; expected?: any; log?: string; error?: string; executionTime?: number; } /** * 代码运行结果 */ export interface RunResult { output: string; error?: string; executionTime: number; status: "success" | "error" | "timeout"; testResults?: TestCaseResult[]; } /** * 运行策略函数类型 */ export type RunnerStrategy = (code: string, testCases?: TestCase[]) => Promise; /** * 编辑器选项 */ export interface SmartCodeEditorOptions { container: HTMLElement | string; language?: string; theme?: string; value?: string; readOnly?: boolean; showQuestionPanel?: boolean; questionContent?: string; questionMarkdown?: import('./question').QuestionMarkdownOptions; defaultSplitRatio?: number; supportedLanguages?: string[]; enableLanguageSwitch?: boolean; enableRun?: boolean; disableLocalRun?: boolean; customRunner?: (code: string, language: string, testCases?: TestCase[]) => Promise; runTimeout?: number; enableSubmit?: boolean; /** 题目完整配置(可选) */ questionConfig?: import('./question').QuestionConfig; /** 自定义语言模板映射(可选,会覆盖 questionConfig) */ languageTemplates?: import('./question').LanguageTemplates; onChange?: (value: string) => void; onRun?: (result: RunResult) => void; onSubmit?: (code: string, language: string) => void; onLanguageChange?: (language: string) => void; suggestOnTriggerCharacters?: boolean; quickSuggestions?: boolean | object; } /** * Monaco Editor 配置选项 */ export interface MonacoEditorOptions { language?: string; theme?: string; value?: string; readOnly?: boolean; minimap?: { enabled: boolean; }; fontSize?: number; lineNumbers?: "on" | "off"; automaticLayout?: boolean; suggestOnTriggerCharacters?: boolean; quickSuggestions?: boolean | object; } //# sourceMappingURL=index.d.ts.map