import type React from 'react';
export declare type AnimationStatus = 'opening' | 'closing' | 'open' | 'closed';
export declare type AnimationPhase = 'tearsheet' | 'closeButton' | 'scrim' | 'disabled';
interface QaTags {
    closeButton?: string;
    scrim?: string;
}
export interface TearsheetProps {
    /**
     * @since 11.11.0
     */
    ['aria-describedby']?: string;
    /**
     * @since 11.11.0
     */
    ['aria-details']?: string;
    /**
     * @since 11.11.0
     */
    ['aria-label']?: string;
    /**
     * @since 11.11.0
     */
    ['aria-labelledby']?: string;
    children?: React.ReactNode;
    /**
     * @since 11.11.0
     */
    id?: string;
    /**
     * A controlled prop defining open/close state of the tearsheet.
     * @since 10.25.0
     */
    open: boolean;
    /**
     * A required callback to be called when "close" button is clicked. Should set "open" flag to "false".
     * @since 10.25.0
     */
    onClose: () => void;
    /**
     * A callback to be called when "open" animation is finished.
     * @since 10.25.0
     */
    afterShow?: () => void;
    /**
     * A callback to be called when "close" animation is finished.
     * @since 10.25.0
     */
    afterHide?: () => void;
    /**
     * Force Tearsheet to fill all the available width/height of the screen, depending on placement
     * @since 12.18.0
     * */
    block?: boolean;
    /**
     * Tearsheet placement
     * @since 10.25.0
     * @deprecated There will be only `right` placement, so the property will be removed
     * @deprecatedSince 12.18.0
     */
    placement?: Placement;
    /**
     * Stretch tearsheet body to the full width or height of the screen, depending on placement
     * @since 11.1.0
     * @deprecated Use `block` as a drop-in replacement
     * @deprecatedSince 12.18.0
     */
    stretch?: boolean;
    /**
     * @since 11.11.0
     */
    role?: 'dialog';
    /**
     * QA tags
     * @since 10.25.0
     */
    qa?: QaTags;
}
export interface TearsheetContextProps {
    placement: Placement | null;
    addListener: (e: string, cb: Function) => () => void;
}
export declare type Placement = 'right' | 'left' | 'bottom';
export {};
