import * as React from "react";
import type { MergeElementProps } from "../typings";
interface OwnProps {
    /**
     * The content of the snackbar.
     */
    children?: React.ReactNode;
    /**
     * The className applied to the snackbar.
     */
    className?: string | ((ctx: {
        openState: boolean;
    }) => string);
    /**
     * If `true`, the snackbar will be opened.
     */
    open: boolean;
    /**
     * The DOM node reference or selector to focus when the snackbar closes.
     *
     * If not provided, the previously focused element will be focused.
     */
    focusAfterClosed?: React.RefObject<HTMLElement> | string;
    /**
     * The `status` role defines a live region containing advisory information for the user that is not important enough to be an `alert`.
     *
     * The `alert` role is for important, and usually time-sensitive, information.
     * @default "alert"
     */
    role: "alert" | "status";
    /**
     * Used to keep mounting when more control is needed.\
     * Useful when controlling animation with React animation libraries.
     * @default false
     */
    keepMounted?: boolean;
    /**
     * The time in milliseconds that should elapse before automatically closing the snackbar.
     */
    duration?: number;
    /**
     * The Callback is fired when the duration ends.
     */
    onDurationEnd?: () => void;
    /**
     * Callback fired when the `Escape` key is released.
     */
    onEscapeKeyUp?: (event: KeyboardEvent) => void;
}
export type Props = Omit<MergeElementProps<"div", OwnProps>, "defaultChecked" | "defaultValue">;
declare const Snackbar: (props: Props, ref: React.Ref<HTMLDivElement>) => JSX.Element | null;
export default Snackbar;
