import { Optional } from "./lib-core.js";
export declare const PromptSymbol: unique symbol;
type PromptTypes = "instruction" | "data";
export interface Prompt {
    [PromptSymbol]: PromptTypes;
}
export interface DataPrompt extends Prompt {
    data: string;
    format: (input: string) => string;
    [PromptSymbol]: "data";
}
export declare function dataPrompt(_literals: TemplateStringsArray, ..._args: unknown[]): DataPrompt;
export interface InstructionPrompt extends Prompt {
    instruction: string;
    [PromptSymbol]: "instruction";
}
export declare function instructionPrompt(literals: TemplateStringsArray, ...args: unknown[]): InstructionPrompt;
export interface PromptCompiler {
    renderPrompt: (input?: string) => Optional<string>;
}
export declare function promptCompiler(_literals: TemplateStringsArray, ...args: unknown[]): {
    renderPrompt: (input?: string) => Optional<string>;
};
export {};
