import { AccordionStateManager, AccordionState } from '../internal/lib';
import type { BlockBuilderReturnableFn, BlockBuilder, StringReturnableFn, Nullable } from '../internal/types';
export interface AccordionActionIdParams {
    expandedItems: AccordionState;
}
export declare type AccordionActionIdFn = StringReturnableFn<AccordionActionIdParams>;
export declare type AccordionTitleTextFn<T> = StringReturnableFn<{
    item: T;
}>;
export declare type AccordionBuilderFn<T> = BlockBuilderReturnableFn<{
    item: T;
}>;
export interface AccordionUIComponentParams<T> {
    items: T[];
    paginator: AccordionStateManager;
    expandButtonText: Nullable<string>;
    collapseButtonText: Nullable<string>;
    titleTextFunction: AccordionTitleTextFn<T>;
    actionIdFunction: AccordionActionIdFn;
    builderFunction: AccordionBuilderFn<T>;
}
export declare class AccordionUIComponent<T> {
    private readonly items;
    private readonly paginator;
    private readonly expandButtonText;
    private readonly collapseButtonText;
    private readonly titleTextFunction;
    private readonly actionIdFunction;
    private readonly builderFunction;
    constructor(params: AccordionUIComponentParams<T>);
    getBlocks(): BlockBuilder[];
}
