export type Maybe<T> = T | null | undefined;
export type InputMaybe<T> = T | null | undefined;
export type Exact<T extends {
    [key: string]: unknown;
}> = {
    [K in keyof T]: T[K];
};
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
    [SubKey in K]?: Maybe<T[SubKey]>;
};
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
    [SubKey in K]: Maybe<T[SubKey]>;
};
export type MakeEmpty<T extends {
    [key: string]: unknown;
}, K extends keyof T> = {
    [_ in K]?: never;
};
export type Incremental<T> = T | {
    [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never;
};
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
    ID: {
        input: string;
        output: string;
    };
    String: {
        input: string;
        output: string;
    };
    Boolean: {
        input: boolean;
        output: boolean;
    };
    Int: {
        input: number;
        output: number;
    };
    Float: {
        input: number;
        output: number;
    };
    Address: {
        input: `${string}:0x${string}`;
        output: `${string}:0x${string}`;
    };
    Amount: {
        input: {
            unit?: string;
            value?: number;
        };
        output: {
            unit?: string;
            value?: number;
        };
    };
    Amount_Crypto: {
        input: {
            unit: string;
            value: string;
        };
        output: {
            unit: string;
            value: string;
        };
    };
    Amount_Currency: {
        input: {
            unit: string;
            value: string;
        };
        output: {
            unit: string;
            value: string;
        };
    };
    Amount_Fiat: {
        input: {
            unit: string;
            value: number;
        };
        output: {
            unit: string;
            value: number;
        };
    };
    Amount_Money: {
        input: number;
        output: number;
    };
    Amount_Percentage: {
        input: number;
        output: number;
    };
    Amount_Tokens: {
        input: number;
        output: number;
    };
    Currency: {
        input: string;
        output: string;
    };
    Date: {
        input: string;
        output: string;
    };
    DateTime: {
        input: string;
        output: string;
    };
    EmailAddress: {
        input: string;
        output: string;
    };
    EthereumAddress: {
        input: string;
        output: string;
    };
    OID: {
        input: string;
        output: string;
    };
    OLabel: {
        input: string;
        output: string;
    };
    PHID: {
        input: string;
        output: string;
    };
    URL: {
        input: string;
        output: string;
    };
    Unknown: {
        input: unknown;
        output: unknown;
    };
    Upload: {
        input: File;
        output: File;
    };
};
export type AddReactionInput = {
    emoji: Scalars["String"]["input"];
    id: Scalars["OID"]["input"];
    messageId: Scalars["OID"]["input"];
    participantId: Scalars["OID"]["input"];
};
export type Attachment = {
    description: Maybe<Scalars["String"]["output"]>;
    id: Scalars["OID"]["output"];
    thumbnailUrl: Maybe<Scalars["String"]["output"]>;
    title: Maybe<Scalars["String"]["output"]>;
    type: AttachmentType;
    url: Scalars["URL"]["output"];
};
export type AttachmentInput = {
    description?: InputMaybe<Scalars["String"]["input"]>;
    id: Scalars["OID"]["input"];
    thumbnailUrl?: InputMaybe<Scalars["String"]["input"]>;
    title?: InputMaybe<Scalars["String"]["input"]>;
    type: AttachmentType;
    url: Scalars["URL"]["input"];
};
export type AttachmentType = "FILE" | "GIF" | "IMAGE" | "LINK";
export type ChatState = {
    channelId: Maybe<Scalars["PHID"]["output"]>;
    messages: Array<Message>;
    pinnedMessageIds: Array<Scalars["String"]["output"]>;
};
export type DeleteMessageInput = {
    messageId: Scalars["OID"]["input"];
};
export type EditMessageInput = {
    content: Scalars["String"]["input"];
    editedAt: Scalars["DateTime"]["input"];
    messageId: Scalars["OID"]["input"];
};
export type Message = {
    attachments: Array<Attachment>;
    authorId: Scalars["OID"]["output"];
    content: Scalars["String"]["output"];
    edited: Scalars["Boolean"]["output"];
    editedAt: Maybe<Scalars["DateTime"]["output"]>;
    id: Scalars["OID"]["output"];
    reactions: Array<Reaction>;
    replyToId: Maybe<Scalars["OID"]["output"]>;
    timestamp: Scalars["DateTime"]["output"];
};
export type PinMessageInput = {
    messageId: Scalars["OID"]["input"];
};
export type Reaction = {
    emoji: Scalars["String"]["output"];
    id: Scalars["OID"]["output"];
    participantIds: Array<Scalars["OID"]["output"]>;
};
export type RemoveReactionInput = {
    emoji: Scalars["String"]["input"];
    messageId: Scalars["OID"]["input"];
    participantId: Scalars["OID"]["input"];
};
export type SendMessageInput = {
    attachments?: InputMaybe<Array<AttachmentInput>>;
    authorId: Scalars["OID"]["input"];
    content: Scalars["String"]["input"];
    id: Scalars["OID"]["input"];
    replyToId?: InputMaybe<Scalars["OID"]["input"]>;
    timestamp: Scalars["DateTime"]["input"];
};
export type SetChannelIdInput = {
    channelId: Scalars["PHID"]["input"];
};
export type UnpinMessageInput = {
    messageId: Scalars["OID"]["input"];
};
//# sourceMappingURL=types.d.ts.map