import { ModelFamily, PromptRequest, GeneratedPrompt, StylePreset, ContentRating } from "../types.js"; /** * Base class for prompt generation strategies */ export declare abstract class PromptStrategy { abstract readonly family: ModelFamily; abstract readonly name: string; /** * Generate an optimized prompt for this model family */ abstract generate(request: PromptRequest): GeneratedPrompt; /** * Get style-specific keywords for a preset */ protected getStyleKeywords(style?: StylePreset): string[]; /** * Get default dimensions for aspect ratio */ protected getDimensions(aspectRatio?: "portrait" | "landscape" | "square" | "wide" | "tall"): { width: number; height: number; }; /** * Apply emphasis to keywords (model-specific) */ protected abstract applyEmphasis(keyword: string, strength?: number): string; /** * Get rating tag if applicable */ protected getRatingTag(rating?: ContentRating): string | null; }