import { HttpClient } from '../http/http-client';
import { DatasetCode } from './datasets';
export declare type MeaningWord = {
    wordId: number;
    wordValue: string;
    wordValuePrese: string;
    homonymNr: number;
    lang: string;
    wordTypeCodes: null | unknown;
    prefixoid: boolean;
    suffixoid: boolean;
    foreign: boolean;
    matchingWord: boolean;
    mostPreferred: boolean;
    leastPreferred: boolean;
    datasetCodes: string[];
    public: boolean;
};
export declare type Meaning = {
    meaningId: number;
    meaningDomains: null | unknown;
    meaningWords: MeaningWord[];
    meaningWordsExist: boolean;
};
export declare type MeaningSearchResponse = {
    meaningCount: number;
    wordCount: number;
    resultCount: number;
    results: Meaning[];
    resultExist: boolean;
    resultDownloadNow: boolean;
    resultDownloadLater: boolean;
};
export declare type LangGroup = {
    lang: string;
    selected: boolean;
    definitions: Array<{
        id: number;
        value: string;
        lang: string;
        complexity: string;
        orderBy: 62504;
        typeCode: string;
        typeValue: string;
        datasetCodes: string[];
        notes: unknown[];
        sourceLinks: unknown[];
        editDisabled: boolean;
        public: boolean;
    }>;
};
export declare type Freeform = {
    id: number;
    parentId: number | null;
    type: string;
    valueText: string;
    valuePrese: string;
    valueDate: string | null;
    lang: string | null;
    complexity: unknown | null;
    orderBy: unknown | null;
    children: unknown[];
    modifiedBy: unknown | null;
    modifiedOn: unknown | null;
    public: unknown | null;
};
export declare type MeaningDetailsResponse = {
    meaningId: number;
    lexemeIds: number[];
    definitions: unknown | null;
    definitionLangGroups: LangGroup[];
    lexemes: unknown | null;
    lexemeDatasetCodes: string[];
    firstWordValue: string;
    semanticTypes: Array<{
        name: string;
        code: string;
        value: string;
    }>;
    freeforms: Freeform[];
    learnerComments: string;
    images: unknown[];
    medias: unknown[];
    forums: unknown[];
    noteLangGroups: unknown[];
    synonymLangGroups: unknown | null;
    tags: unknown[];
    activeTagComplete: boolean;
    lastActivityEventOn: string | null;
    lastApproveEventOn: string | null;
    manualEventOn: string | null;
};
export declare class Meanings {
    private httpClient;
    constructor(httpClient: HttpClient);
    private getSearchPath;
    private getMeaningDetailsPath;
    search(searchTerm: string, datasets?: Array<DatasetCode>): Promise<MeaningSearchResponse>;
    getDetails(wordId: number, datasets?: Array<DatasetCode>): Promise<MeaningDetailsResponse>;
}
