import { HTMLTemplateResult, PropertyValueMap } from "lit";
import { FRoot } from "../../mixins/components/f-root/f-root";
import { FDiv } from "../f-div/f-div";
import { FIcon } from "../f-icon/f-icon";
import render, { contentSectionHeader, jumplinksItems, jumplinksSection } from "./render";
import { checkInView, getAccordionPanel, getTextPanel, handleSearch, handleSelection, scrollToSectionMethod, toggleLeftColumn, traverse } from "./handler";
import { FSelect } from "../f-select/f-select";
export type FDocumentData = Record<string, string | FDocumentStatement>;
export type FDocTextType = "heading" | "para";
export type FDocumentStatement = {
    title: string;
    data?: FDocumentData;
    type?: FDocTextType;
    open: boolean;
    template?: (highlightText?: string | null) => HTMLTemplateResult;
};
export type FDocViewerContent = Record<string, FDocumentStatement | string>;
export declare class FDocumentViewer extends FRoot {
    /**
     * css loaded from scss file
     */
    static styles: import("lit").CSSResult[];
    /**
     * @attribute json object for doc-previewer
     */
    content: FDocViewerContent;
    /** * mention required fields here for generating vue types */
    readonly required: string[];
    /**
     * @attribute toggle jump-links
     */
    jumpLinks: boolean;
    /**
     * @attribute toggle notch if jump-links present
     */
    collapsibleJumpLinks: boolean;
    /**
     * @attribute toggle level-selector
     */
    levelSelector: boolean;
    fDocViewerScrollContent: FDiv;
    leftColumn: FDiv;
    notch: FDiv;
    notchIcon: FIcon;
    leftColumnWrapper: FDiv;
    fSelectLevelSelector: FSelect;
    indexingLevelSelected: null | number;
    searchValue: string;
    deepestLevel: number;
    /**
     * return an array consisting of indexing levels for filtering the content on the basis of levels.
     */
    inndexingArray(levels: number): {
        Indexing: string[];
    };
    /**
     *
     * @param index string or a number for unique identification
     * @returns a special character for dynamic id creation
     */
    refName(index: string | number): string;
    /**
     *
     * @param index string or a number for unique identification
     * @returns a special character for dynamic id creation
     */
    sidebarRefName(index: string | number): string;
    /**
     *
     * @param type para or heading
     * @returns text state color
     */
    getState(type?: FDocTextType): string;
    /**
     *
     * @param type para or heading
     * @returns text weight
     */
    getTextWeight(type?: FDocTextType): string;
    getAccordionPanel: typeof getAccordionPanel;
    getTextPanel: typeof getTextPanel;
    traverse: typeof traverse;
    scrollToSectionMethod: typeof scrollToSectionMethod;
    checkInView: typeof checkInView;
    handleSelection: typeof handleSelection;
    handleSearch: typeof handleSearch;
    toggleLeftColumn: typeof toggleLeftColumn;
    contentSectionHeader: typeof contentSectionHeader;
    jumplinksSection: typeof jumplinksSection;
    jumplinksItems: typeof jumplinksItems;
    render: typeof render;
    protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
}
/**
 * Required for typescript
 */
declare global {
    interface HTMLElementTagNameMap {
        "f-document-viewer": FDocumentViewer;
    }
}
