import React from "react";
import type { CustomFabSize } from "../CustomFabProps";
import type { IStateUpdate, ListItemReact } from "@etsoo/react";
import type { UserKey } from "@etsoo/appscript";
import { ContainerProps } from "@mui/material/Container";
import { Theme } from "@mui/material/styles";
/**
 * Common page props
 * Default container id is 'pageContainer'
 */
export interface CommonPageProps extends Omit<ContainerProps, "id"> {
    /**
     * Fab buttons
     */
    fabButtons?: React.ReactNode;
    /**
     * Fab size
     */
    fabSize?: CustomFabSize;
    /**
     * Fab flex column direction, undefined to hide it
     */
    fabColumnDirection?: boolean;
    /**
     * Fab padding adjust
     */
    fabPaddingAdjust?: number;
    /**
     * Add panel to the Fab
     */
    fabPanel?: boolean;
    /**
     * Fab refresh button is supported or not
     */
    fabRefresh?: boolean;
    /**
     * Fab lays in the top
     */
    fabTop?: ((theme: Theme, padding: {}) => object) | boolean;
    /**
     * More actions
     */
    moreActions?: ListItemReact[];
    /**
     * On refresh callback, only when authorized = true
     */
    onRefresh?: () => void | PromiseLike<void>;
    /**
     * On page update, when authorized = null or true case, may uses onRefresh
     */
    onUpdate?: () => void | PromiseLike<void>;
    /**
     * On page update, all cases with authorized
     */
    onUpdateAll?: IStateUpdate;
    /**
     * Paddings
     */
    paddings?: number | Record<string, string | number>;
    /**
     * Scroll container
     */
    scrollContainer?: HTMLElement | object;
    /**
     * Support back click
     */
    supportBack?: boolean;
    /**
     * State last changed fields
     */
    targetFields?: UserKey[];
}
/**
 * Common page
 * @param props Props
 */
export declare function CommonPage(props: CommonPageProps): import("react/jsx-runtime").JSX.Element;
