import GcPdfViewer from "..";
import { AnnotationBase } from "../Annotations/AnnotationTypes";
import { OpenParameters } from "./ViewerTypes";
export type EventName = "ErrorEvent" | "BeforeOpenEvent" | "AfterOpenEvent" | "ThemeChangedEvent" | "BeforeAddAnnotation" | "AfterAddAnnotation" | "BeforeUpdateAnnotation" | "AfterUpdateAnnotation" | "BeforeRemoveAnnotation" | "AfterRemoveAnnotation";
export type EventArgs = {
    eventName?: EventName;
    source?: GcPdfViewer;
};
export type CancelEventArgs = {
    cancel?: boolean;
} & EventArgs;
export type ErrorEventArgs = {
    readonly message: string;
    readonly type: 'open' | string;
    readonly exception?: any;
} & EventArgs;
export type BeforeOpenEventArgs = {
    readonly payload: Uint8Array | string;
    readonly openParameters?: OpenParameters;
    readonly type: 'binary' | 'url';
} & EventArgs;
export type AfterOpenEventArgs = {} & EventArgs;
export type ThemeChangedEventArgs = {
    readonly theme: string;
} & EventArgs;
export type BaseAnnotationEventArgs = {
    pageIndex: number;
    annotation: AnnotationBase;
} & EventArgs;
export type BaseAnnotationCancelEventArgs = {} & BaseAnnotationEventArgs & CancelEventArgs;
export type BeforeAddAnnotationEventArgs = {
    annotationElement?: HTMLElement;
} & BaseAnnotationCancelEventArgs;
export type AfterAddAnnotationEventArgs = {} & BaseAnnotationEventArgs;
export type BeforeUpdateAnnotationEventArgs = {} & BaseAnnotationCancelEventArgs;
export type AfterUpdateAnnotationEventArgs = {} & BaseAnnotationEventArgs;
export type BeforeRemoveAnnotationEventArgs = {} & BaseAnnotationCancelEventArgs;
export type AfterRemoveAnnotationEventArgs = {} & BaseAnnotationEventArgs;
