import { FudisIdComponent, FudisIdData, FudisIdGrandParent, FudisIdParent } from '../../types/id';
import * as i0 from "@angular/core";
export declare class FudisIdService {
    private _idData;
    /**
     * Get collected ID data
     */
    getIdData(): FudisIdData;
    getNewId(componentType: FudisIdComponent): string;
    /**
     * Add an id to collection of single components
     */
    addNewId(componentType: FudisIdComponent, newId: string): void;
    /**
     * Get an id and add it to collection for a parent component. E.g. 'fudis-breadcrumbs-1'
     */
    getNewParentId(componentType: FudisIdParent): string;
    /**
     * Add id to collection of parents
     */
    addNewParentId(componentType: FudisIdParent, newId: string): void;
    /**
     * Get an id and add it to collection for a child component. E.g. 'fudis-breadcrumbs-1-item-1'
     */
    getNewChildId(parentType: FudisIdParent, parentId: string): string;
    getAllChildrenIds(parentType: FudisIdParent, parentId: string): string[];
    /**
     * Add id to collection of parents children
     */
    addNewChildId(parentType: FudisIdParent, parentId: string, customId: string): void;
    /**
     * Get an id and add it to collection for a grand parent type components
     */
    getNewGrandParentId(componentType: FudisIdGrandParent): string;
    /**
     * Add grand parent id to data collection
     */
    addNewGrandParentId(componentType: FudisIdGrandParent, newId: string): void;
    /**
     * Get an id and add it to collection for first child of grandparent. E.g. Select Group or
     * Description List Item
     */
    getNewGroupId(componentType: 'select' | 'multiselect' | 'description-list' | 'dropdown-menu', parentId: string): string;
    /**
     * Add group id of grand parent to data collection
     */
    addNewGroupId(componentType: 'select' | 'multiselect' | 'description-list' | 'dropdown-menu', parentId: string, newId: string): void;
    getNewDropdownMenuId(parentId: string, groupParentId?: string): string;
    /**
     * Get an id and add it to collection for Select Options -->
     * fudis-select-4-group-2-option-g3n3ratedh4sh
     */
    getNewSelectOptionId(label: string, selectType: 'select' | 'multiselect', selectParentId: string, groupParentId?: string): string;
    static createSelectOptionId(id: string, label: string): string;
    /**
     * Djb2 hash for hashing the label for the option id. It doesn't have to be this, it can be
     * anything as long as it's fast and short
     */
    private static hashLabel;
    /**
     * Get an id and add it to collection for Descrition List Term & Details -->
     * fudis-description-list-1-item-1-term & fudis-description-list-1-item-1-details-1
     */
    getNewDlGrandChilId(childType: 'term' | 'details', parentDlId: string, parentItemId: string): string;
    getDlGrandChildrensIds(childType: 'term' | 'details', parentDlId: string, parentItemId: string): string[];
    static ɵfac: i0.ɵɵFactoryDeclaration<FudisIdService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FudisIdService>;
}
