import EventEmitter from 'eventemitter3';
import { ApplicationInstanceType, ForgeWindow } from '@netless/forge-room';
import { ForgeSlidePermissionFlag, ForgeSlidePermissions } from './ForgeSlidePermession';
export interface SlideEvents {
    /**
     * 当用户权限变更时触发
     * @param { string } userId 对应 userId
     * @param { ForgeSlidePermissionFlag[] } flags 当前权限列表
     * @param { number } value 权限值
     */
    permissionChange: (userId: string, flags: ForgeSlidePermissionFlag[], value: number) => void;
    /**
     * 开始渲染页面时触发
     * @param {number} pageIndex 页面索引
     */
    renderStart: (pageIndex: number) => void;
    /**
     * 页面渲染完成时触发
     * @param {number} pageIndex 页面索引
     */
    renderEnd: (pageIndex: number) => void;
    /**
     * 主序列动画完成时触发
     * @param {number} animateIndex 主动画索引
     */
    mainSeqStepEnd: (animateIndex: number) => void;
    /**
     * 主序列动画开始时触发
     * @param {number} animateIndex 主动画索引
     */
    mainSeqStepStart: (animateIndex: number) => void;
}
export declare class SlideForge extends EventEmitter<SlideEvents> implements ApplicationInstanceType {
    readonly view: HTMLDivElement;
    readonly permissions: ForgeSlidePermissions;
    readonly footView: HTMLDivElement;
    readonly sideBarView: HTMLDivElement;
    readonly window: ForgeWindow | undefined;
    /**
       * 当前页面索引, 从 0 开始
       */
    readonly pageIndex: number;
    /**
       * 总页数
       */
    readonly pageCount: number;
    /**
       * 切换到参数指定页面, index 从 0 开始
       * @param {number} index 页面索引
       */
    goto: (index: number) => void;
    /**
       * 下一步, 如果已经是本页的最后一步, 则切换到下一页
       */
    nextStep: () => void;
    /**
       * 上一步, 如果已经是本页的第一步, 则切换到上一页
       */
    prevStep: () => void;
    /**
       * 下一页, 如果是最后一页, 则不执行任何操作
       */
    nextPage: () => void;
    /**
       * 上一页, 如果是第一页, 则不执行任何操作
       */
    prevPage: () => void;
    /**
       * 切换侧栏显示状态
       */
    sideBarToggle: () => void;
    /**
       * 获取预览图图片内容, base64 编码
       * @param {number} index 页面索引
       */
    imgContent: (index: number) => Promise<string>;
    /**
       * 获取预览图图片链接
       * @param {number} index 页面索引
       */
    imgUrl: (index: number) => Promise<string>;
    /**
       * 获取预览图图片尺寸
       * @param {number} index 页面索引
       */
    imgSize: (index: number) => Promise<{
        width: number;
        height: number;
    }>;
}
//# sourceMappingURL=Slide.d.ts.map