export type { Tool, Resource, Prompt, CallToolRequest, CallToolResult, ReadResourceRequest, ReadResourceResult, GetPromptRequest, GetPromptResult, ListToolsRequest, ListResourcesRequest, ListPromptsRequest, } from '@modelcontextprotocol/sdk/types.js';
export interface SegmindModel {
    id: string;
    name: string;
    description: string;
    category: 'text2img' | 'img2img' | 'video' | 'utility';
    inputSchema: Record<string, unknown>;
    outputSchema: Record<string, unknown>;
    pricing: {
        creditsPerGeneration: number;
    };
    limitations?: {
        maxWidth?: number;
        maxHeight?: number;
        maxDuration?: number;
    };
}
export interface SegmindApiResponse<T = unknown> {
    data?: T;
    error?: string | {
        message: string;
        code?: string;
    };
    credits?: {
        used: number;
        remaining: number;
    };
    metadata?: Record<string, any>;
    image?: string;
    video_url?: string;
    status?: string;
}
export interface ImageGenerationParams {
    model: string;
    prompt: string;
    negativePrompt?: string;
    width?: number;
    height?: number;
    steps?: number;
    guidance?: number;
    seed?: number;
    numOutputs?: number;
    scheduler?: string;
    outputFormat?: 'png' | 'jpeg' | 'webp';
}
export interface ImageToImageParams extends ImageGenerationParams {
    inputImage: string;
    strength?: number;
}
export interface VideoGenerationParams {
    model: string;
    prompt: string;
    inputImage?: string;
    duration?: number;
    fps?: number;
    width?: number;
    height?: number;
}
export interface GeneratedImage {
    url: string;
    base64?: string;
    width: number;
    height: number;
    format: string;
    size: number;
}
export interface GeneratedVideo {
    url: string;
    duration: number;
    fps: number;
    width: number;
    height: number;
    format: string;
}
export interface GenerateImageToolParams {
    model?: string;
    prompt: string;
    negativePrompt?: string;
    width?: number;
    height?: number;
    steps?: number;
    guidance?: number;
    seed?: number;
    outputFormat?: 'png' | 'jpeg' | 'webp';
}
export interface ImageToImageToolParams {
    model?: string;
    inputImage: string;
    prompt: string;
    negativePrompt?: string;
    strength?: number;
    width?: number;
    height?: number;
    outputFormat?: 'png' | 'jpeg' | 'webp';
}
export interface GenerateVideoToolParams {
    model?: string;
    prompt: string;
    inputImage?: string;
    duration?: number;
    fps?: number;
    width?: number;
    height?: number;
}
export interface ImageValidationResult {
    isValid: boolean;
    format?: string;
    width?: number;
    height?: number;
    size?: number;
    error?: string;
}
export interface RateLimitInfo {
    limit: number;
    remaining: number;
    reset: Date;
}
export interface CacheEntry<T> {
    data: T;
    timestamp: number;
    expiresAt: number;
}
export interface ServerState {
    isInitialized: boolean;
    modelsLoaded: boolean;
    activeRequests: number;
    rateLimits: Map<string, RateLimitInfo>;
}
//# sourceMappingURL=index.d.ts.map