import { t as CapabilityFactory } from "../core-CSZf27yz.js";

//#region ../app/capabilities/devkit/toolchain.d.ts
interface Position {
  line: number;
  character: number;
}
interface Range {
  start: Position;
  end: Position;
}
interface Diagnostic {
  file: string;
  range: Range;
  severity: 'error' | 'warning' | 'info';
  source: string;
  code?: string;
  message: string;
  related?: {
    file: string;
    range: Range;
    message: string;
  }[];
}
interface OutputFile {
  path: string;
  text: string;
}
interface CompileResult {
  outputs: OutputFile[];
  diagnostics: Diagnostic[];
}
interface CheckResult {
  diagnostics: Diagnostic[];
}
//#endregion
//#region ../app/capabilities/devkit/contract.d.ts
type DevkitPreview = {
  kind: 'url';
  src: string;
} | {
  kind: 'window';
};
interface DevkitCapability {
  compile(input: {
    slug: string;
  }): Promise<CompileResult>;
  typecheck(input: {
    slug: string;
  }): Promise<CheckResult>;
  run(input: {
    slug: string;
    reset?: boolean;
  }): Promise<{
    previewId: string;
    diagnostics: string[];
    preview?: DevkitPreview;
  }>;
  stop(input: {
    previewId: string;
  }): Promise<void>;
  install(input: {
    slug: string;
  }): Promise<{
    id: string;
  }>;
  pack(input: {
    slug: string;
  }): Promise<{
    zip: Uint8Array;
  }>;
}
//#endregion
//#region ../app/capabilities/devkit/index.d.ts
declare const devkit: CapabilityFactory<"devkit", DevkitCapability, Record<never, never>>;
declare function previewIdFor(slug: string): string;
//#endregion
export { type CheckResult, type CompileResult, type DevkitCapability, type DevkitPreview, type Diagnostic, type OutputFile, type Position, type Range, devkit, previewIdFor };
//# sourceMappingURL=devkit.d.ts.map