import type { PrefixLog } from './prefixLog.ts'; export interface Settings { path: string; slot_path?: string | null; template_path?: string | null; uploads?: string[]; } type PageReference = 'main' | 'template' | 'slot'; export interface PathContext { reference: PageReference; path: string; normalizedPath: string; serverUrl: string; auth: string; settings: Settings; /** Relative dir for display / logging */ dir: string; /** Absolute dir for fs / git operations */ absoluteDir: string; log: PrefixLog; /** Prompt before exec operations */ prompt?: boolean; /** Paths that this context's path must not collide with (parent/sibling) */ forbiddenPaths?: string[]; } export type PathOperation = (ctx: PathContext, ...args: any[]) => Promise; /** * Read settings.json from a directory */ export declare function readSettings(dir?: string, fs?: { readFile: (path: string, encoding?: BufferEncoding) => Promise; }): Promise; /** * Get the uploads directory for a PathContext */ export declare function getUploadsDir(ctx: PathContext): string; /** * Normalize a path by removing the leading slash */ export declare function normalizePath(path: string): string; /** * Build an array of PathContext objects from main settings. * Always includes main, conditionally adds template and slot. * Returns in execution order for push (template → slot → main). */ export declare function getPageData(mainSettings: Settings, serverUrl: string, auth: string, log: PrefixLog, options?: { prompt?: boolean; }): Promise; export {}; //# sourceMappingURL=pageContext.d.ts.map