import { MutationObserver, MutationObserverOptions } from '@tanstack/query-core';
import { WeavyType } from '../client/weavy';
import { AppType, AppTypeGuid, AccessType, AppRef } from '../types/app.types';
export type MutateMarkConversationVariables = {
    appId: number;
    messageId?: number | null | undefined;
    userId: number | undefined;
};
export type MutateStarConversationVariables = {
    appId: number;
    star: boolean;
};
export type MutatePinConversationVariables = {
    appId: number;
    pin: boolean;
};
export type MutateLeaveConversationVariables = {
    appId: number;
    members: number[];
};
export type MutateRemoveConversationVariables = {
    appId: number;
};
export type MutateUpdateMemberVariables = {
    appId: number;
    userId: number;
    access: AccessType;
};
export type MutateAddMembersToConversationVariables = {
    appId: number;
    members: number[];
};
export type MutateUpdateConversationVariables = {
    appId: number;
    name?: string | null | undefined;
    blobId?: number | null | undefined;
    thumbnailUrl?: string | null | undefined;
};
export type MutateTrashConversationVariables = {
    appId: number;
};
export type MarkConversationMutationType = MutationObserver<void, Error, MutateMarkConversationVariables, void>;
export type StarConversationMutationType = MutationObserver<void, Error, MutateStarConversationVariables, void>;
export type PinConversationMutationType = MutationObserver<void, Error, MutatePinConversationVariables, void>;
export type LeaveConversationMutationType = MutationObserver<void, Error, MutateLeaveConversationVariables, void>;
export type RemoveConversationMutationType = MutationObserver<void, Error, MutateRemoveConversationVariables, void>;
export type UpdateMemberMutationType = MutationObserver<void, Error, MutateUpdateMemberVariables, void>;
export type AddMembersToConversationMutationType = MutationObserver<void, Error, MutateAddMembersToConversationVariables, void>;
export type UpdateConversationMutationType = MutationObserver<AppType, Error, MutateUpdateConversationVariables, void>;
export type TrashConversationMutationType = MutationObserver<void, Error, MutateTrashConversationVariables, void>;
export declare function getMarkConversationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId, messageId }: MutateMarkConversationVariables) => Promise<void>;
    onMutate: (variables: MutateMarkConversationVariables) => Promise<void>;
    onError: (error: Error, variables: MutateMarkConversationVariables) => void;
    onSettled: (data: void | undefined, error: Error | null, variables: MutateMarkConversationVariables) => Promise<void>;
};
export declare function getStarConversationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId, star }: MutateStarConversationVariables) => Promise<void>;
    onMutate: (variables: MutateStarConversationVariables) => void;
    onError: (error: Error, variables: MutateStarConversationVariables) => void;
};
export declare function getPinConversationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId, pin }: MutatePinConversationVariables) => Promise<void>;
    onMutate: (variables: MutatePinConversationVariables) => void;
    onSettled: () => Promise<void>;
};
export declare function getLeaveConversationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId, members }: MutateLeaveConversationVariables) => Promise<void>;
    onMutate: (variables: MutateLeaveConversationVariables) => void;
    onSuccess: (data: void | undefined, variables: MutateLeaveConversationVariables) => void;
    onSettled: () => Promise<void>;
};
export declare function getRemoveConversationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId }: MutateRemoveConversationVariables) => Promise<void>;
    onMutate: (variables: MutateRemoveConversationVariables) => void;
    onSettled: () => Promise<void>;
};
export declare function getUpdateMemberMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId, userId, access }: MutateUpdateMemberVariables) => Promise<void>;
    onSettled: (data: void | undefined, error: Error | null, variables: MutateUpdateMemberVariables) => Promise<void>;
};
export declare function getAddMembersToConversationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId, members }: MutateAddMembersToConversationVariables) => Promise<void>;
    onSettled: (data: void | undefined, error: Error | null, variables: MutateAddMembersToConversationVariables) => Promise<void>;
};
export declare function getUpdateConversationMutationOptions(weavy: WeavyType): MutationObserverOptions<AppType, Error, MutateUpdateConversationVariables, void>;
export declare function getTrashConversationMutationOptions(weavy: WeavyType): {
    mutationFn: ({ appId }: MutateTrashConversationVariables) => Promise<void>;
    onMutate: (variables: MutateTrashConversationVariables) => void;
    onSettled: () => Promise<void>;
};
export declare function getMarkConversationMutation(weavy: WeavyType): MarkConversationMutationType;
export declare function getStarConversationMutation(weavy: WeavyType): StarConversationMutationType;
export declare function getPinConversationMutation(weavy: WeavyType): PinConversationMutationType;
export declare function getLeaveConversationMutation(weavy: WeavyType): LeaveConversationMutationType;
export declare function getRemoveConversationMutation(weavy: WeavyType): RemoveConversationMutationType;
export declare function getUpdateMemberMutation(weavy: WeavyType): UpdateMemberMutationType;
export declare function getAddMembersToConversationMutation(weavy: WeavyType): AddMembersToConversationMutationType;
export declare function getUpdateConversationMutation(weavy: WeavyType): UpdateConversationMutationType;
export declare function getTrashConversationMutation(weavy: WeavyType): TrashConversationMutationType;
export declare function getConversationOptions(weavy: WeavyType, conversationId: number, types?: AppTypeGuid[] | null, member?: string): import('@tanstack/query-core').QueryObserverOptions<AppType, Error, AppType, AppType, readonly unknown[], never>;
export declare function getConversation(weavy: WeavyType, conversationId: number, types?: AppTypeGuid[] | null, member?: string): Promise<AppType>;
export declare function resolveAppWithType(weavy: WeavyType, app: AppRef | AppType | number, types: AppTypeGuid[], member?: string): Promise<AppType | undefined>;
//# sourceMappingURL=conversation.d.ts.map