import type { ChatPostMessageArguments, ChatPostMessageResponse } from '@slack/web-api'; /** * Extend this interface to build a type that is treated as an open set of properties, where each key is a string. */ export type StringIndexed = Record; /** * Type function which allows either types `T` or `U`, but not both. */ export type XOR = T | U extends Record ? (Without & U) | (Without & T) : T | U; type Without = { [P in Exclude]?: never; }; /** Type predicate for use with `Promise.allSettled` for filtering for resolved results. */ export declare const isFulfilled: (p: PromiseSettledResult) => p is PromiseFulfilledResult; /** Type predicate for use with `Promise.allSettled` for filtering for rejected results. */ export declare const isRejected: (p: PromiseSettledResult) => p is PromiseRejectedResult; /** Using type parameter T (generic), can distribute the Omit over a union set. */ type DistributiveOmit = T extends any ? Omit : never; export type SayArguments = DistributiveOmit & { channel?: string; }; export type SayFn = (message: string | SayArguments) => Promise; export type RespondArguments = DistributiveOmit & { /** Response URLs can be used to send ephemeral messages or in-channel messages using this argument */ response_type?: 'in_channel' | 'ephemeral'; replace_original?: boolean; delete_original?: boolean; text?: string; thread_ts?: string; }; export type RespondFn = (message: string | RespondArguments) => Promise; export type AckFn = (response?: Response) => Promise; export {}; //# sourceMappingURL=utilities.d.ts.map