import React from "react";
export { React };
/** Properties that control how an activity user interface is hosted by the host application. */
export interface ShowProps {
    /** The name of the container that will host the activity user interface. */
    container?: "default" | "modal";
    /** The title to present for the activity user interface. */
    title?: string;
    /** The icon to present for the activity user interface. */
    icon?: string;
}
/** A render method that provides a React element. */
export interface RenderMethod<T, TThis, TState> {
    /**
     * @param this The activity instance.
     * @param resolve The resolver that returns updated state to the activity from the React element.
     * @param state The initial activity state.
     * @returns The React element to render.
     */
    (this: TThis, resolve: RenderResolve<T>, state: TState): JSX.Element | PromiseLike<JSX.Element>;
}
/** A resolve method for messaging between a React component and the parent activity. */
export interface RenderResolve<T> {
    /** Returns updated state to the activity. */
    (value: T | PromiseLike<T>): void;
    /** Returns a rejection to the activity. */
    reject(reason: any): any;
}
/**
 * A base activity implementation that provides access to application level resources and
 * facilitates rendering of custom user interfaces.
 */
export declare function AppActivity(): void;
