import * as dntShim from "../../_dnt.shims.js"; import { type RuntimeKind } from "../../src/platform/compat/runtime.js"; export type ScaffoldRouter = "app-router" | "pages-router"; export declare const SCAFFOLD_TYPES: readonly ["page", "api", "layout", "component", "tool", "agent", "prompt", "workflow", "task", "resource", "skill"]; export type ScaffoldType = typeof SCAFFOLD_TYPES[number]; export declare const AUTH_PRESETS: readonly ["authelia", "oidc", "microsoft-entra"]; export type AuthPreset = typeof AUTH_PRESETS[number]; export type ScaffoldHttpMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; export interface ScaffoldInput { projectDir: string; type: ScaffoldType; name: string; router?: ScaffoldRouter; methods?: ScaffoldHttpMethod[]; resultPathMode?: "absolute" | "relative"; } export interface ScaffoldFilePlan { path: string; content: string; } export interface ScaffoldPlan { type: ScaffoldType | "auth"; name: string; files: ScaffoldFilePlan[]; } export interface ScaffoldResult { success: boolean; files: Array<{ path: string; created: boolean; }>; message: string; failureKind?: ScaffoldFailureKind; } export type ScaffoldFailureKind = "conflict" | "filesystem" | "invalid" | "limit" | "unsafe-path"; export interface AuthScaffoldInput { projectDir: string; preset: AuthPreset; filesForTesting?: ScaffoldFilePlan[]; templateFilesForTesting?: ScaffoldFilePlan[]; beforeWriteForTesting?: (file: ScaffoldFilePlan) => Promise; failWriteAfterBytesForTesting?: number; beforeOpenForTesting?: (file: ScaffoldFilePlan) => Promise; afterOpenForTesting?: (file: ScaffoldFilePlan) => Promise; secureCreateForTesting?: (file: ScaffoldFilePlan, create: () => Promise) => Promise; identityForTesting?: (info: dntShim.Deno.FileInfo) => FileIdentity; nativeIdentityForTesting?: (path: string) => Promise; removeForTesting?: (path: string) => Promise; realPathForTesting?: (path: string) => Promise; } export declare function isScaffoldType(type: string): type is ScaffoldType; export declare function isAuthPreset(preset: string): preset is AuthPreset; export declare function planScaffold(input: ScaffoldInput): ScaffoldPlan; export declare function writeScaffoldPlan(plan: ScaffoldPlan): Promise; export declare function scaffoldProjectFile(input: ScaffoldInput): Promise; export declare function planAuthScaffold(input: AuthScaffoldInput): Promise; export declare function scaffoldAuthFiles(input: AuthScaffoldInput): Promise; export type FileIdentity = { dev: number | string; ino: number | string; kind: "directory" | "file" | "symlink" | "other"; mode?: number | string | null; size?: number | string; mtimeMs?: number | string | null; birthtimeMs?: number | string | null; ctimeMs?: number | string | null; } | null; interface SecureWriterCommand { command: string; args: string[]; } declare function buildSecureScaffoldWriterCommand(options?: { execPath?: string; moduleUrl?: string; runtimeKind?: RuntimeKind; standalone?: boolean; }): SecureWriterCommand; /** @internal Test seam for npm runtime command construction. */ export declare function testBuildSecureScaffoldWriterCommand(options: Parameters[0]): SecureWriterCommand; export {}; //# sourceMappingURL=engine.d.ts.map