import { ContentService } from '../type';
import { OrdinalWeightPage } from "@internal/domain/content";
import { Site } from "./site";
import { Page } from "./page";
export declare class WeightedPage {
    private page;
    private ordinalWeightPage;
    constructor(page: Page, ordinalWeightPage: OrdinalWeightPage);
    get Page(): any;
    weight(): number;
    ordinal(): number;
    owner(): any;
    get Permalink(): string;
    get RelPermalink(): string;
    get Title(): string;
}
export declare class WeightedPages extends Array<WeightedPage> {
    page(): WeightedPage | null;
    get Page(): WeightedPage | null;
    pages(): WeightedPage[];
    sortByWeight(): void;
    count(): number;
    get Count(): number;
    private stableSort;
}
export declare class Taxonomy {
    private terms;
    get(term: string): WeightedPages | undefined;
    set(term: string, pages: WeightedPages): void;
    has(term: string): boolean;
    keys(): string[];
    values(): WeightedPages[];
    get Values(): Map<string, WeightedPages>;
    entries(): [string, WeightedPages][];
    size(): number;
    byCount(): OrderedTaxonomy;
    taxonomyArray(): OrderedTaxonomyEntry[];
}
export declare class OrderedTaxonomyEntry {
    name: string;
    weightedPages: WeightedPages;
    constructor(name: string, weightedPages: WeightedPages);
    count(): number;
    term(): string;
}
export declare class OrderedTaxonomy extends Array<OrderedTaxonomyEntry> {
    constructor(entries?: OrderedTaxonomyEntry[]);
    getOneOPage(): WeightedPage | null;
}
export declare class TaxonomyList {
    private taxonomies;
    get(taxonomyName: string): Taxonomy | undefined;
    set(taxonomyName: string, taxonomy: Taxonomy): void;
    has(taxonomyName: string): boolean;
    keys(): string[];
    values(): Taxonomy[];
    get Values(): Map<string, Taxonomy>;
    entries(): [string, Taxonomy][];
    size(): number;
}
export declare class TaxonomiesBuilder {
    private readonly contentService;
    constructor(contentService: ContentService);
    buildTaxonomiesForLanguage(langIndex: number, site: Site): Promise<TaxonomyList>;
}
