import { z } from 'zod'; declare const metadataSchema: z.ZodObject<{ abortController: z.ZodType; id: z.ZodString; }, "strict", z.ZodTypeAny, { id: string; abortController: AbortController; }, { id: string; abortController: AbortController; }>; declare const renderedMessageSchema: z.ZodObject<{ custom: z.ZodRecord; duration: z.ZodNullable; header: z.ZodNullable; metadata: z.ZodObject<{ abortController: z.ZodType; id: z.ZodString; }, "strict", z.ZodTypeAny, { id: string; abortController: AbortController; }, { id: string; abortController: AbortController; }>; progress: z.ZodNullable; text: z.ZodString; type: z.ZodString; }, "strict", z.ZodTypeAny, { type: string; custom: Record; header: string | null; text: string; progress: number | null; duration: number | null; metadata: { id: string; abortController: AbortController; }; }, { type: string; custom: Record; header: string | null; text: string; progress: number | null; duration: number | null; metadata: { id: string; abortController: AbortController; }; }>; export type RenderedMessage = z.output; declare const messageSchema: z.ZodObject<{ custom: z.ZodDefault>; duration: z.ZodDefault>; header: z.ZodDefault>; metadata: z.ZodDefault>; id: z.ZodDefault; }, "strict", z.ZodTypeAny, { id: string; abortController: AbortController; }, { abortController?: AbortController | undefined; id?: string | undefined; }>>; text: z.ZodString; type: z.ZodDefault; }, "strict", z.ZodTypeAny, { type: string; custom: Record; header: string | null; text: string; duration: number | null; metadata: { id: string; abortController: AbortController; }; }, { text: string; custom?: Record | undefined; duration?: number | null | undefined; header?: string | null | undefined; metadata?: { abortController?: AbortController | undefined; id?: string | undefined; } | undefined; type?: string | undefined; }>; declare const subscribeHandlerSchema: z.ZodFunction; duration: z.ZodNullable; header: z.ZodNullable; metadata: z.ZodObject<{ abortController: z.ZodType; id: z.ZodString; }, "strict", z.ZodTypeAny, { id: string; abortController: AbortController; }, { id: string; abortController: AbortController; }>; progress: z.ZodNullable; text: z.ZodString; type: z.ZodString; }, "strict", z.ZodTypeAny, { type: string; custom: Record; header: string | null; text: string; progress: number | null; duration: number | null; metadata: { id: string; abortController: AbortController; }; }, { type: string; custom: Record; header: string | null; text: string; progress: number | null; duration: number | null; metadata: { id: string; abortController: AbortController; }; }>, "many">], z.ZodUnknown>, z.ZodUnion<[z.ZodPromise, z.ZodVoid]>>; type IsEmptyObject = T extends Record ? true : false; type MessageTypes = { [key: string]: Record; default: Record; }; type Messages = { [TYPE in keyof MESSAGE_TYPES]: Omit, 'custom' | 'type'> & (IsEmptyObject extends true ? { custom?: MESSAGE_TYPES[TYPE]; } : { custom: MESSAGE_TYPES[TYPE]; }) & (TYPE extends 'default' ? { type?: 'default'; } : { type: TYPE; }); }; type MessagesNoDefault = { [KEY in keyof MESSAGE_TYPES]: { duration?: number | null; header?: string | null; text: string; type: KEY; } & (IsEmptyObject extends true ? { custom?: MESSAGE_TYPES[KEY]; } : { custom: MESSAGE_TYPES[KEY]; }); }; type ShowResult = { abort: () => void; custom: MESSAGE_TYPES[TYPE]; done: Promise<'deleted'>; header: string | null; metadata: z.output; text: string; }; type Show = [keyof MESSAGE_TYPES & string]>(message: Exclude[keyof MESSAGE_TYPES & string]> extends never ? MESSAGE : never) => ShowResult; type WithInferredOptions = OPTIONS extends { duration?: number | null; type: infer TYPE extends keyof MESSAGE_TYPES; } ? MessagesNoDefault[TYPE] | Omit[TYPE], 'type'> : Messages[keyof MESSAGE_TYPES]; type WithOptions = (baseOptions: Exclude extends never ? BASE_OPTIONS : `Argument "${Exclude}" is not supported`) => >(options: Exclude> extends never ? OPTIONS : `Argument "${Exclude}" is not supported`) => ShowResult; export type ToasterReturn = { abort: (toastId: string) => void; show: Show; withOptions: WithOptions; _internal_pls_dont_touch: { requestDelete: (toastId: string) => void; subscribe: (handler: z.output) => void; unsubscribe: () => void; }; }; declare const createToasterOptions: z.ZodDefault, z.ZodBoolean>; start: z.ZodFunction, z.ZodVoid>], z.ZodUnknown>, z.ZodVoid>; stop: z.ZodFunction, z.ZodVoid>; }, "strict", z.ZodTypeAny, { start: (args_0: (...args: unknown[]) => void, ...args: unknown[]) => void; stop: (...args: unknown[]) => void; getIsRunning: (...args: unknown[]) => boolean; }, { start: (args_0: (...args: unknown[]) => void, ...args: unknown[]) => void; stop: (...args: unknown[]) => void; getIsRunning: (...args: unknown[]) => boolean; }>>; numberOfToasts: z.ZodDefault; }, "strict", z.ZodTypeAny, { animationFrame: { start: (args_0: (...args: unknown[]) => void, ...args: unknown[]) => void; stop: (...args: unknown[]) => void; getIsRunning: (...args: unknown[]) => boolean; }; numberOfToasts: number; }, { animationFrame?: { start: (args_0: (...args: unknown[]) => void, ...args: unknown[]) => void; stop: (...args: unknown[]) => void; getIsRunning: (...args: unknown[]) => boolean; } | undefined; numberOfToasts?: number | undefined; }>>; type CreateToasterOptions = z.input; export declare const createToaster: ; }>(_options?: CreateToasterOptions) => ToasterReturn; export {};