import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { GeneratePageContent, GeneratePageContentParameters } from '../../consumers/generate-page-content.service';
import { Socket } from 'socket.io-client';
import { BreakoutParticipant, ComponentSizes, ShowAlert } from '../../@types/types';
import * as i0 from "@angular/core";
export interface ModernPaginationParameters extends GeneratePageContentParameters {
    mainRoomsLength: number;
    memberRoom: number;
    breakOutRoomStarted: boolean;
    breakOutRoomEnded: boolean;
    member: string;
    breakoutRooms: BreakoutParticipant[][];
    hostNewRoom: number;
    roomName: string;
    islevel: string;
    showAlert?: ShowAlert;
    socket: Socket;
    getUpdatedAllParams: () => ModernPaginationParameters;
    [key: string]: any;
}
export interface ModernPaginationOptions {
    totalPages: number;
    currentUserPage: number;
    handlePageChange: (options: any) => Promise<void>;
    position: 'left' | 'middle' | 'right' | string;
    location: 'top' | 'middle' | 'bottom' | string;
    direction: 'horizontal' | 'vertical';
    buttonsContainerStyle: any;
    activePageStyle: any;
    inactivePageStyle: any;
    backgroundColor: string;
    paginationHeight: number;
    showAspect?: boolean;
    parameters: ModernPaginationParameters;
}
export declare class ModernPaginationComponent implements OnInit, OnChanges {
    private generatePageContentService;
    totalPages: number;
    currentUserPage: number;
    handlePageChange: (options: any) => Promise<void>;
    position: 'left' | 'middle' | 'right' | string;
    location: 'top' | 'middle' | 'bottom' | string;
    direction: 'horizontal' | 'vertical';
    buttonsContainerStyle: any;
    activePageStyle: any;
    inactivePageStyle: any;
    backgroundColor: string;
    paginationHeight: number;
    showAspect: boolean;
    maxVisiblePages: number;
    parameters: ModernPaginationParameters;
    constructor(generatePageContentService: GeneratePageContent);
    faHome: import("@fortawesome/fontawesome-common-types").IconDefinition;
    faStar: import("@fortawesome/fontawesome-common-types").IconDefinition;
    faLock: import("@fortawesome/fontawesome-common-types").IconDefinition;
    faUsers: import("@fortawesome/fontawesome-common-types").IconDefinition;
    faChevronLeft: import("@fortawesome/fontawesome-common-types").IconDefinition;
    faChevronRight: import("@fortawesome/fontawesome-common-types").IconDefinition;
    faChevronUp: import("@fortawesome/fontawesome-common-types").IconDefinition;
    faChevronDown: import("@fortawesome/fontawesome-common-types").IconDefinition;
    data: number[];
    private windowStart;
    componentSizes: ComponentSizes;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    handleClick: (page: number) => Promise<void>;
    resolveParameters(): ModernPaginationParameters;
    isDarkModeEnabled(): boolean;
    refreshVisiblePages(): void;
    shouldShowNavigationArrows(): boolean;
    canNavigateBack(): boolean;
    canNavigateForward(): boolean;
    shiftWindowBack(): void;
    shiftWindowForward(): void;
    getArrowStyle(disabled: boolean): Record<string, string>;
    getHomeIconColor(): string;
    getContainerStyle(): Record<string, string>;
    getPageStyle(item: number): Record<string, string>;
    getPageLabelStyle(item: number): Record<string, string>;
    getPageAriaLabel(item: number): string;
    isBreakoutRoom: (item: number) => boolean;
    isCurrentBreakoutRoom(item: number): boolean;
    showBreakoutLock(item: number): boolean;
    getDisplayItem(item: number): string;
    private syncWindowToCurrentPage;
    private clampWindowStart;
    private getWindowShiftAmount;
    private getBreakoutRoomNumber;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModernPaginationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ModernPaginationComponent, "app-modern-pagination", never, { "totalPages": { "alias": "totalPages"; "required": false; }; "currentUserPage": { "alias": "currentUserPage"; "required": false; }; "handlePageChange": { "alias": "handlePageChange"; "required": false; }; "position": { "alias": "position"; "required": false; }; "location": { "alias": "location"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "buttonsContainerStyle": { "alias": "buttonsContainerStyle"; "required": false; }; "activePageStyle": { "alias": "activePageStyle"; "required": false; }; "inactivePageStyle": { "alias": "inactivePageStyle"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "paginationHeight": { "alias": "paginationHeight"; "required": false; }; "showAspect": { "alias": "showAspect"; "required": false; }; "maxVisiblePages": { "alias": "maxVisiblePages"; "required": false; }; "parameters": { "alias": "parameters"; "required": false; }; }, {}, never, never, true, never>;
}
