import * as Types from '../../../../../api/types';
import * as ApolloReactCommon from '@apollo/client';
import * as ApolloReactHooks from '@apollo/client';
export declare type ConversationQueryVariables = Types.Exact<{
    id: Types.Scalars['ID'];
    after?: Types.InputMaybe<Types.Scalars['ID']>;
}>;
export declare type ConversationQuery = {
    __typename?: 'Query';
    Conversation?: {
        __typename?: 'Conversation';
        _id: string;
        done: boolean;
        messages: Array<{
            __typename?: 'ConversationItem';
            _id: string;
            conversationId: string;
            createdAt: string;
            senderType: Types.ConversationSenderType;
            card?: {
                __typename?: 'ConversationCard';
                type: Types.ConversationCardType;
                link?: string | null;
                image?: string | null;
                title?: string | null;
                appIcon?: string | null;
                appTitle?: string | null;
                createdBy: Types.ConversationCardSender;
                description?: string | null;
            } | null;
            buttons: Array<{
                __typename?: 'ConversationItemButton';
                _id: string;
                text: string;
                type: Types.ConversationItemButtonType;
                action_type: Types.ConversationItemButtonActionType;
                url?: string | null;
                target?: Types.ConversationItemButtonTarget | null;
                event_name?: string | null;
                event_payload?: string | null;
            }>;
            attachments: Array<{
                __typename?: 'Attachment';
                _id: string;
                pending: boolean;
                uploaded: boolean;
                fileName: string;
                extension: string;
                size?: number | null;
                url?: string | null;
                uploadUrl?: string | null;
            }>;
            content: {
                __typename?: 'ConversationContent';
                type: Types.ConversationContentType;
                messageString?: string | null;
                message: Array<{
                    __typename?: 'ParagraphElement';
                    _id: string;
                    type: string;
                    children: Array<{
                        __typename?: 'InlineLinkElement';
                        _id: string;
                        url: string;
                        type: string;
                        children?: Array<{
                            __typename?: 'InlineTextElement';
                            _id: string;
                            text: string;
                            bold?: boolean | null;
                            italic?: boolean | null;
                            underline?: boolean | null;
                        }> | null;
                    } | {
                        __typename?: 'InlineTextElement';
                        _id: string;
                        text: string;
                        bold?: boolean | null;
                        italic?: boolean | null;
                        underline?: boolean | null;
                    }>;
                }>;
            };
            sender: {
                __typename?: 'APIIntegration';
                logoURL?: string | null;
                displayName?: string | null;
                displayDescription?: string | null;
            } | {
                __typename?: 'MemberUser';
                name?: string | null;
                lastName: string;
                firstName: string;
                logoURL?: string | null;
            } | {
                __typename?: 'Visitor';
                _id: string;
                name?: string | null;
                image?: string | null;
            };
        }>;
    } | null;
};
export declare const ConversationDocument: ApolloReactCommon.DocumentNode;
/**
 * __useConversationQuery__
 *
 * To run a query within a React component, call `useConversationQuery` and pass it any options that fit your needs.
 * When your component renders, `useConversationQuery` returns an object from Apollo Client that contains loading, error, and data properties
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useConversationQuery({
 *   variables: {
 *      id: // value for 'id'
 *      after: // value for 'after'
 *   },
 * });
 */
export declare function useConversationQuery(baseOptions: ApolloReactHooks.QueryHookOptions<ConversationQuery, ConversationQueryVariables>): ApolloReactCommon.QueryResult<ConversationQuery, Types.Exact<{
    id: string;
    after?: string;
}>>;
export declare function useConversationLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<ConversationQuery, ConversationQueryVariables>): ApolloReactCommon.QueryTuple<ConversationQuery, Types.Exact<{
    id: string;
    after?: string;
}>>;
export declare type ConversationQueryHookResult = ReturnType<typeof useConversationQuery>;
export declare type ConversationLazyQueryHookResult = ReturnType<typeof useConversationLazyQuery>;
export declare type ConversationQueryResult = ApolloReactCommon.QueryResult<ConversationQuery, ConversationQueryVariables>;
