interface ReactElementWithDisplayName {
    type?: {
        displayName?: string;
    };
}
interface ElementWithProps {
    props?: {
        url?: string;
        payload?: string;
        path?: string;
        webview?: unknown;
    };
}
export declare function isMultichannelButton(node?: ReactElementWithDisplayName): boolean;
export declare function isMultichannelReply(node?: ReactElementWithDisplayName): boolean;
export declare function isNodeText(node?: ReactElementWithDisplayName): boolean;
export declare function isNodeButton(node?: ReactElementWithDisplayName): boolean;
export declare function isNodeCarousel(node?: ReactElementWithDisplayName): boolean;
export declare function isNodeReply(node?: ReactElementWithDisplayName): boolean;
export declare function isNodePic(node?: ReactElementWithDisplayName): boolean;
export declare function isNodeTitle(node?: ReactElementWithDisplayName): boolean;
export declare function isNodeSubtitle(node?: ReactElementWithDisplayName): boolean;
export declare function elementHasUrl(element?: ElementWithProps): string | undefined;
export declare function elementHasPostback(element?: ElementWithProps): string | undefined;
export declare function elementHasWebview(element?: ElementWithProps): unknown;
export declare const buttonTypes: {
    readonly POSTBACK: "postback";
    readonly URL: "url";
    readonly WEBVIEW: "webview";
};
export type ButtonType = (typeof buttonTypes)[keyof typeof buttonTypes];
export declare function getButtonType(multichannelButton?: ElementWithProps): ButtonType | undefined;
export declare function getFilteredElements<T extends ReactElementWithDisplayName>(node: Iterable<T>, filter: (n: T) => boolean): T[];
export declare function getMultichannelButtons(node: Iterable<ReactElementWithDisplayName>): ReactElementWithDisplayName[];
export declare function getMultichannelReplies(node: Iterable<ReactElementWithDisplayName>): ReactElementWithDisplayName[];
export {};
