import { APIResource } from "../../../core/resource.js";
import { APIPromise } from "../../../core/api-promise.js";
import { RequestOptions } from "../../../internal/request-options.js";
export declare class BaseTrace extends APIResource {
    static readonly _key: readonly ['emailSecurity', 'investigate', 'trace'];
    /**
     * Retrieves delivery and processing trace information for an email message. Shows
     * the delivery path, retraction history, and move operations performed on the
     * message. Useful for debugging delivery issues.
     *
     * @example
     * ```ts
     * const trace =
     *   await client.emailSecurity.investigate.trace.get(
     *     '4Njp3P0STMz2c02Q-2024-01-05T10:00:00-12345678',
     *     { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     *   );
     * ```
     */
    get(investigateID: string, params: TraceGetParams, options?: RequestOptions): APIPromise<TraceGetResponse>;
}
export declare class Trace extends BaseTrace {
}
export interface TraceGetResponse {
    inbound: TraceGetResponse.Inbound;
    outbound: TraceGetResponse.Outbound;
}
export declare namespace TraceGetResponse {
    interface Inbound {
        lines?: Array<Inbound.Line> | null;
        pending?: boolean | null;
    }
    namespace Inbound {
        interface Line {
            /**
             * Line number in the trace log.
             */
            lineno?: number;
            logged_at?: string | null;
            message?: string;
            /**
             * @deprecated Use `logged_at` instead.
             */
            ts?: string;
        }
    }
    interface Outbound {
        lines?: Array<Outbound.Line> | null;
        pending?: boolean | null;
    }
    namespace Outbound {
        interface Line {
            /**
             * Line number in the trace log.
             */
            lineno?: number;
            logged_at?: string | null;
            message?: string;
            /**
             * @deprecated Use `logged_at` instead.
             */
            ts?: string;
        }
    }
}
export interface TraceGetParams {
    /**
     * Account identifier tag.
     */
    account_id: string;
}
export declare namespace Trace {
    export { type TraceGetResponse as TraceGetResponse, type TraceGetParams as TraceGetParams };
}
//# sourceMappingURL=trace.d.ts.map