import type { Message } from "@earendil-works/pi-ai";
export type InputTarget = {
    kind: "url";
    url: string;
} | {
    kind: "file";
    filePath: string;
} | {
    kind: "stdin";
};
export type UrlKind = {
    kind: "website";
} | {
    kind: "asset";
} | {
    kind: "media";
    mediaType: string;
};
export type AssetAttachment = {
    mediaType: string;
    filename: string | null;
    kind: "image" | "file";
    bytes: Uint8Array;
};
export declare function resolveFileUrlPath(url: URL, options?: {
    windows?: boolean;
}): string;
export declare function isLikelyAssetPathname(pathname: string): boolean;
export declare function isLikelyAssetUrl(url: string): boolean;
export declare function shouldProbeUnknownAssetUrl(url: string): boolean;
export declare function resolveInputTarget(raw: string): InputTarget;
export declare function classifyUrl({ url, fetchImpl, timeoutMs, }: {
    url: string;
    fetchImpl: typeof fetch;
    timeoutMs: number;
}): Promise<UrlKind>;
export declare function loadLocalAsset({ filePath, maxBytes, }: {
    filePath: string;
    maxBytes?: number;
}): Promise<{
    sourceLabel: string;
    attachment: AssetAttachment;
}>;
export declare function loadRemoteAsset({ url, fetchImpl, timeoutMs, maxBytes, }: {
    url: string;
    fetchImpl: typeof fetch;
    timeoutMs: number;
    maxBytes?: number;
}): Promise<{
    sourceLabel: string;
    attachment: AssetAttachment;
}>;
export declare function buildAssetPromptMessages({ promptText, attachment, }: {
    promptText: string;
    attachment: AssetAttachment;
}): Array<Message>;
