import { FaqCategory } from "../enums";
export declare class MultilingualContentFetch {
    en: string;
    ar: string;
    ru: string;
    zh: string;
    toPlain(): {
        en: string;
        ar: string;
        ru: string;
        zh: string;
    };
    static fromPlain(plain: any): MultilingualContentFetch;
}
export declare class FaqFilterDTO {
    search?: string;
    searchLanguage?: 'en' | 'ar' | 'ru' | 'zh';
    searchInAnswers?: boolean;
    category?: FaqCategory;
    isActive?: boolean;
    constructor(init?: Partial<FaqFilterDTO>);
    validate(shouldValidate?: boolean): string[];
    static fromPlain(plain: any): FaqFilterDTO;
    static toPlain(instance: FaqFilterDTO): Record<string, unknown>;
}
export declare class SortDTO {
    field: string;
    direction: 'asc' | 'desc';
}
export declare class FaqOptionsDTO {
    page: number;
    limit: number;
    sort?: {
        field: string;
        direction: 'asc' | 'desc';
    };
    constructor(init?: Partial<FaqOptionsDTO>);
    validate(shouldValidate?: boolean): string[];
    static toPlain(instance: FaqOptionsDTO): Record<string, any>;
    static fromPlain(plain: any): FaqOptionsDTO;
}
export declare class FaqFetchDTO {
    filter?: FaqFilterDTO;
    options?: FaqOptionsDTO;
    static fromPlain(plain: any): FaqFetchDTO;
    constructor(init?: Partial<FaqFetchDTO>);
    static toPlain(instance: FaqFetchDTO): Record<string, unknown>;
}
export declare class FaqResponseDTO {
    id: string;
    question: MultilingualContentFetch;
    answer: MultilingualContentFetch;
    category: string;
    isActive: boolean;
    order: number;
    createdAt: string;
    updatedAt: string;
    toPlain(): {
        id: string;
        question: {
            en: string;
            ar: string;
            ru: string;
            zh: string;
        };
        answer: {
            en: string;
            ar: string;
            ru: string;
            zh: string;
        };
        category: string;
        isActive: boolean;
        order: number;
        createdAt: string;
        updatedAt: string;
    };
    static fromPlain(plain: Record<string, any>): FaqResponseDTO;
    validate(): string[];
}
export interface FaqApiResponse {
    success: boolean;
    message?: string;
    error?: {
        message: string;
        code?: string;
        details?: Record<string, any>;
    };
    data?: FaqResponseDTO;
}
export interface FaqListApiResponse {
    success: boolean;
    message?: string;
    error?: {
        message: string;
        code?: string;
        details?: Record<string, any>;
    };
    data?: {
        items: FaqResponseDTO[];
        total: number;
        page: number;
        limit: number;
    };
}
