import { Platform, PlatformOptions, Problem } from "./platform-DVQwRMI1.js";

//#region src/platforms/hydro.d.ts

type ProblemType = 'traditional' | 'interactive' | 'submission' | 'objective';
/**
 * HydroOJ-specific problem type.
 *
 * - Samples are **not** omitted in the description
 * - Description is [Hydro-flavored Markdown](https://docs.hydro.ac/docs/Hydro/user/problem)
 */
type Problem$1 = Problem<string, number, number, string[], ProblemType>;
/**
 * Parses the problem document from Hydro-like platforms.
 * @param pdoc The `pdoc` field from the API response.
 * @param lang The language code, defaults to the first appeared language in the content.
 * @returns The parsed problem object, @{link Problem.link} is empty string.
 */
declare function parseHydroProblem(pdoc: any, lang?: string): Problem$1;
declare const DEFAULT_BASE_URL = "https://hydro.ac";
/** HydroOJ platform. */
declare class Hydro extends Platform<string> {
  constructor(options?: PlatformOptions<string>);
  /**
   * Fetches a problem from HydroOJ using internal API.
   * @param domain The domain the problem belongs to, defaults to the system domain.
   */
  getProblem(id: string, domain?: string): Promise<Problem$1>;
}
//#endregion
export { DEFAULT_BASE_URL, Hydro, Problem$1 as Problem, ProblemType, parseHydroProblem };