import React from 'react';
import { ViewStyle } from 'react-native';
import type { Page, Size } from './types';
export interface CommonIPageFlipperProps {
    enabled?: boolean;
    pressable?: boolean;
    singleImageMode?: boolean;
    renderLastPage?: () => React.ReactElement;
    portrait?: boolean;
    onFlippedEnd?: (index: number) => void;
    onFlipStart?: (id: number) => void;
    onPageDragStart?: () => void;
    onPageDrag?: () => void;
    onPageDragEnd?: () => void;
    onEndReached?: () => void;
    onInitialized?: (props: {
        pages: Page[];
        index: number;
    }) => void;
    renderContainer?: () => any;
    pageSize: Size;
    contentContainerStyle: ViewStyle;
}
export type ConditionalIPageFlipperProps = {
    type: 'image';
    data: string[];
    renderPage?: (page: {
        index: number;
        content: string;
        totalPages: number;
    }) => any;
    linesFirstPage?: never;
    linesPerPage?: never;
    maxWidth?: never;
    font?: never;
    fontSize?: never;
    toIndex?: number;
} | {
    type: 'text';
    data: string;
    linesFirstPage?: number;
    linesPerPage?: number;
    maxWidth?: number;
    font?: string;
    fontSize?: number;
    renderPage?: (page: {
        index: number;
        content: string;
        totalPages: number;
    }) => any;
    toIndex?: number;
};
type IPageFlipperProps = CommonIPageFlipperProps & ConditionalIPageFlipperProps;
export type PageFlipperInstance = {
    goToPage: (index: number) => void;
    previousPage: () => void;
    nextPage: () => void;
};
export type State = {
    pageIndex: number;
    pages: Page[];
    isAnimating: boolean;
    initialized: boolean;
    prev: Page;
    current: Page;
    next: Page;
    nextPageIndex?: number;
    isPortrait: boolean;
};
declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<IPageFlipperProps & React.RefAttributes<PageFlipperInstance>>>;
export default _default;
//# sourceMappingURL=index.d.ts.map