/**
 * 翻訳機能用Reactフック
 */
import { TranslatorClient, TranslationItem, TranslationStats, TranslationProject, TranslationComponent, TranslationLanguage } from '../translator-client';
import { UserPayload } from '../types';
/**
 * 翻訳フック設定
 */
interface UseTranslatorOptions {
    /** 言語を指定 */
    language?: string;
    /** 名前空間を指定 */
    namespace?: string;
    /** テナント固有の翻訳を使用 */
    tenantSpecific?: boolean;
    /** 自動更新を有効化 */
    autoRefresh?: boolean;
    /** 自動更新間隔（ミリ秒） */
    refreshInterval?: number;
    /** フォールバック言語 */
    fallbackLanguage?: string;
    /** 現在のユーザー情報 */
    user?: UserPayload;
    /** ORM設定 */
    ormConfig?: any;
}
/**
 * 翻訳機能フック
 */
export declare function useTranslator(options?: UseTranslatorOptions): {
    t: (key: string, params?: Record<string, any>, options?: {
        namespace?: string;
        fallback?: string;
        interpolation?: boolean;
    }) => string;
    updateTranslation: (key: string, value: string, options?: {
        language?: string;
        state?: string;
    }) => Promise<TranslationItem>;
    searchTranslations: (query: string, options?: {
        language?: string;
        limit?: number;
    }) => Promise<{
        results: TranslationItem[];
        count: number;
    }>;
    currentLanguage: string;
    changeLanguage: (lang: string) => Promise<void>;
    supportedLanguages: string[];
    translations: TranslationItem[];
    pendingTranslations: TranslationItem[];
    stats: TranslationStats | null;
    progress: number;
    untranslatedCount: number;
    loading: boolean;
    error: string | null;
    initialized: boolean;
    canEdit: boolean;
    canManage: boolean;
    refresh: (lang?: string) => Promise<void>;
    refreshStats: (lang?: string) => Promise<void>;
    client: TranslatorClient | null;
    debugInfo: {
        initialized: boolean;
        translatorClient: boolean;
        currentLanguage: string;
        translationsCount: number;
        stats: TranslationStats | null;
        supportedLanguages: string[];
        canEdit: boolean;
        canManage: boolean;
        loading: boolean;
        error: string | null;
    };
};
/**
 * 翻訳管理用フック（管理者向け）
 */
export declare function useTranslatorAdmin(): {
    projects: TranslationProject[];
    components: TranslationComponent[];
    languages: TranslationLanguage[];
    loading: boolean;
    error: string | null;
    canManage: boolean;
    fetchProjects: () => Promise<void>;
    fetchComponents: (projectSlug?: string) => Promise<void>;
    fetchLanguages: (projectSlug?: string) => Promise<void>;
    createProject: (project: any) => Promise<TranslationProject>;
    createComponent: (projectSlug: string, component: any) => Promise<TranslationComponent>;
    initializeTenantProject: (tenantId: string) => Promise<TranslationProject>;
    client: TranslatorClient | null;
};
/**
 * 翻訳統計用フック
 */
export declare function useTranslationStats(language?: string): {
    stats: TranslationStats | null;
    progressInfo: {
        total: number;
        translated: number;
        approved: number;
        fuzzy: number;
        pending: number;
        translatedPercent: number;
        approvedPercent: number;
        fuzzyPercent: number;
        pendingPercent: number;
        wordsTotal: number;
        wordsTranslated: number;
        wordsApproved: number;
        wordsTranslatedPercent: number;
        wordsApprovedPercent: number;
        lastChange: string | undefined;
        lastAuthor: string | undefined;
    } | null;
    loading: boolean;
    error: string | null;
    refresh: () => Promise<void>;
    language: string;
};
export {};
//# sourceMappingURL=useTranslator.d.ts.map