/**
 * BaiBai Framework 前端类型定义
 * 集中管理所有 API 实体和页面组件的类型
 */
export interface BlogPost {
    id: string;
    title: string;
    content?: string;
    htmlContent?: string;
    category: string;
    tags: string[];
    summary: string;
    date: string;
    updatedAt?: string;
    source?: string;
    in_knowledge_base?: number;
    knowledge_base_scope?: number;
    allow_blog_publish?: number;
    publish_status?: string;
    lark_doc_token?: string;
}
export interface Resource {
    id: string;
    title: string;
    description: string;
    category: string;
    type: 'free' | 'contact';
    tags: string[];
    downloads: number;
    size: string;
    format: string;
    createdAt: string;
    updatedAt?: string;
}
export interface ResourceStats {
    totalResources: number;
    totalDownloads: number;
    popular: Resource[];
    recentDownloads: Array<{
        id: string;
        title: string;
        downloads: number;
    }>;
}
export interface Contact {
    id: string;
    name: string;
    email: string;
    phone?: string;
    projectType?: string;
    budget?: string;
    timeline?: string;
    message: string;
    status: 'new' | 'read' | 'replied' | 'archived';
    createdAt: string;
}
export interface Booking {
    id: string;
    name: string;
    email: string;
    phone?: string;
    slot: string;
    topic?: string;
    message?: string;
    status: 'confirmed' | 'cancelled';
    createdAt: string;
}
export interface BookingSlot {
    slot: string;
    date: string;
    time: string;
    available: boolean;
}
export interface ChatMessage {
    role: 'system' | 'user' | 'assistant';
    content: string;
}
export interface ChatResponse {
    reply: string;
    model: string;
    usage?: Record<string, unknown>;
    error?: string;
}
export interface AgentChatRequest {
    message: string;
    context?: string;
    name?: string;
}
export interface AgentChatResponse {
    reply: string;
    intent: string;
    suggestions: string[];
    leadId: string;
    model: string;
    error?: string;
}
export interface AnalyticsData {
    totalVisits: number;
    pageViews: Record<string, number>;
    dailyStats: Record<string, number>;
    referrers: Record<string, number>;
    timeline: Array<{
        time: string;
        page: string;
        ip: string;
    }>;
}
export interface AdminAuthResponse {
    token: string;
    expiresIn: number;
}
export interface ApiResponse<T = unknown> {
    success?: boolean;
    message?: string;
    error?: string;
    data?: T;
}
export interface Project {
    id: string;
    title: string;
    description: string;
    category: string;
    techStack: string[];
    year: number;
    source?: 'original' | 'github';
    sourceUrl?: string;
    stars?: number;
    language?: string;
    matchScore?: number;
    matchReason?: string;
    isAiOptimized?: boolean;
    originalDescription?: string;
}
export interface ProjectStats {
    totalOriginal: number;
    totalSynced: number;
    highMatch: number;
    lastSyncAt: string | null;
}
export interface AdminProject {
    id: string;
    title: string;
    description: string;
    long_description: string;
    category: string;
    tech_stack: string[];
    year: number;
    source: 'original' | 'github';
    source_url: string;
    stars: number;
    language: string;
    match_score: number;
    match_reason: string;
    image: string;
    highlights: string[];
    links: {
        github?: string;
        demo?: string;
    };
    status: 'active' | 'hidden';
    display_order: number;
    is_ai_optimized: number;
    original_description: string;
    created_at: string;
    updated_at: string;
}
export interface AdminProjectListResponse {
    items: AdminProject[];
    total: number;
    limit: number;
    offset: number;
}
export interface SkillStats {
    totalOriginal: number;
    totalSynced: number;
    totalPlatforms: number;
    lastSyncAt: string | null;
}
export interface Skill {
    id: string;
    name: string;
    description: string;
    category: string;
    tags: string[];
    downloads: number;
    version: string;
    source?: 'lark-cli' | 'clawhub' | 'custom' | 'synced';
    sourceUrl?: string;
    sourcePlatform?: string;
    isAiOptimized?: boolean;
    originalDescription?: string;
}
export interface LarkDoc {
    token: string;
    title: string;
    type: 'docx' | 'wiki_node';
    parentName: string;
    modifiedAt: string;
    synced: boolean;
    blogId?: string;
    publishStatus?: string;
    knowledgeBaseScope?: number;
    allowBlogPublish?: boolean;
}
export interface LarkDocSource {
    id: number;
    source_type: 'folder' | 'wiki_space' | 'root';
    source_token: string;
    source_name: string;
    enabled: boolean;
    createdAt: string;
}
export interface LarkContactUser {
    userId: string;
    name: string;
    email: string;
    mobile: string;
    department: string;
    avatarUrl: string;
}
export interface LarkApprovalDef {
    code: string;
    name: string;
    description: string;
}
export interface LarkBitableTable {
    tableId: string;
    name: string;
    fields: Array<{
        fieldName: string;
        type: string;
    }>;
}
export interface LarkDriveFile {
    token: string;
    name: string;
    type: 'file' | 'folder';
    size: number;
    modifiedAt: string;
}
export interface UUMitCapability {
    id: string;
    name: string;
    description: string;
    inputSchema?: Record<string, unknown>;
    outputSchema?: Record<string, unknown>;
    status: 'active' | 'inactive';
}
export interface UUMitTransaction {
    id: string;
    demandId: string;
    capabilityId: string;
    status: 'pending' | 'processing' | 'completed' | 'failed';
    requestData?: Record<string, unknown>;
    responseData?: Record<string, unknown>;
    createdAt: string;
    completedAt?: string;
}
export interface UUMitAgentCard {
    name: string;
    description: string;
    url: string;
    version: string;
    protocol: string;
    capabilities: Record<string, {
        title: string;
        description: string;
        method: string;
        path: string;
        input?: Record<string, unknown>;
        output?: Record<string, unknown>;
    }>;
    a2a_endpoint: string;
    contact: {
        email: string;
        website: string;
    };
}
export interface UUMitChatResult {
    reply: string;
}
export interface UUMitSearchResult {
    results: Array<{
        title: string;
        url: string;
        summary: string;
        category: string;
        date: string;
        tags: string[];
    }>;
    total: number;
}
export interface ProfileData {
    name: string;
    title: string;
    bio: string;
    avatar: string;
    skills: Array<{
        name: string;
        category: string;
        level: string;
    }>;
    services: Array<{
        id: string;
        name: string;
        description: string;
        priceHint: string;
    }>;
    featuredProjects: Array<{
        id: string;
        title: string;
        summary: string;
        year: number;
    }>;
    stats: {
        totalProjects: number;
        totalBlogPosts: number;
        totalSkills: number;
        yearsOfExperience: number;
    };
    contact: {
        email: string;
        website: string;
        wechat: string;
    };
    social: {
        github: string;
        linkedin: string;
    };
}
export interface BlogTagsData {
    tags: Array<{
        name: string;
        count: number;
    }>;
    categories: Array<{
        name: string;
        count: number;
        slug: string;
    }>;
    totalPosts: number;
    updatedAt: string;
}
export interface ServicesMatchRequest {
    requirement: string;
    budget?: string;
    timeline?: string;
    contactEmail?: string;
}
export interface ServicesMatchResponse {
    matchScore: number;
    matchLevel: string;
    recommendedServices: Array<{
        id: string;
        name: string;
        reason: string;
    }>;
    relevantProjects: Array<{
        id: string;
        title: string;
        relevance: string;
    }>;
    analysis: string;
    suggestedNextStep: string;
    bookingUrl?: string;
}
export interface BijinoteNote {
    note_id: string;
    title: string;
    content: string;
    note_type: 'plain_text' | 'link' | 'img_text';
    tags: Array<{
        id: string;
        name: string;
        type: string;
    }>;
    topics: Array<{
        topic_id: string;
        name: string;
    }>;
    created_at: string;
    updated_at: string;
    audio?: {
        original: string;
        play_url: string;
        duration: number;
    };
    web_page?: {
        content: string;
        url: string;
        excerpt: string;
    };
}
export interface BijinoteTopic {
    topic_id: string;
    name: string;
    description: string;
    note_count: number;
}
export interface BijinoteSyncRecord {
    note_id: string;
    blog_id: string;
    title: string;
    note_type: string;
    synced_at: string;
    status: 'synced' | 'failed' | 'pending';
    error_msg: string;
    topic_id: string;
    tags: string[];
}
export interface PersonalMemory {
    id: number;
    category: string;
    title: string;
    content: string;
    visibility: 'public' | 'private' | 'shared';
    tags: string[];
    importance: number;
    source: string;
    created_at: string;
    updated_at: string;
}
//# sourceMappingURL=index.d.ts.map