import type { IoMessageCode } from './io-host';
import type { ActionLessMessage } from '../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
import type { IoMessageCodeCategory } from '../logging';
type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
type SimplifiedMessage<T> = Omit<ActionLessMessage<T>, 'time'>;
/**
 * Internal helper that processes log inputs into a consistent format.
 * Handles string interpolation, format strings, and object parameter styles.
 * Applies optional styling and prepares the final message for logging.
 */
export declare function formatMessage<T>(msg: Optional<SimplifiedMessage<T>, 'code'>, category?: IoMessageCodeCategory): ActionLessMessage<T>;
/**
 * Creates an error level message.
 * Errors must always have a unique code.
 */
export declare const error: <T>(message: string, code: IoMessageCode, payload?: T) => ActionLessMessage<T | undefined>;
/**
 * Creates a result level message and represents the most important message for a given action.
 *
 * They should be used sparsely, with an action usually having no or exactly one result.
 * However actions that operate on Cloud Assemblies might include a result per Stack.
 * Unlike other messages, results must always have a code and a payload.
 */
export declare const result: <T>(message: string, code: IoMessageCode, payload: T) => ActionLessMessage<T>;
/**
 * Creates a warning level message.
 */
export declare const warn: <T>(message: string, code?: IoMessageCode, payload?: T) => ActionLessMessage<T | undefined>;
/**
 * Creates an info level message.
 */
export declare const info: <T>(message: string, code?: IoMessageCode, payload?: T) => ActionLessMessage<T | undefined>;
/**
 * Creates a debug level message.
 */
export declare const debug: <T>(message: string, code?: IoMessageCode, payload?: T) => ActionLessMessage<T | undefined>;
/**
 * Creates a trace level message.
 */
export declare const trace: <T>(message: string, code?: IoMessageCode, payload?: T) => ActionLessMessage<T | undefined>;
export {};
