import type { SDK } from '../aws-auth/sdk';
import type { EnvironmentResources } from '../environment';
import type { IoHelper } from '../io/private/io-helper';
/**
 * Uses `DescribeEvents` to get the detailed reasons for why a changeset failed to create, if available.
 */
export declare class ChangeSetResourceErrorFetcher {
    private readonly sdk;
    private readonly envResources?;
    constructor(sdk: SDK, envResources?: EnvironmentResources | undefined);
    /**
     * Fetch the details and return them as a string.
     *
     * If the details could not be fetched, log that as a warning using the IoHelper.
     *
     * (This method will only ever be used for early validation, so we are not generalizing
     * the error message in here).
     */
    fetchDetailsString(changeSetName: string, stackName: string, ioHelper: IoHelper): Promise<string>;
    /**
     * Fetch the details and return them in structured form.
     */
    fetchDetailsStructured(changeSetName: string, stackName: string): Promise<ChangeSetErrorCheckResult>;
    private getFailedEvents;
}
export type ChangeSetErrorCheckResult = {
    type: 'could-not-check';
    message: string;
} | {
    type: 'resource-errors';
    errors: ChangeSetResourceError[];
};
export interface ChangeSetResourceError {
    readonly logicalId: string;
    readonly physicalId?: string;
    readonly message: string;
    readonly resourceType?: string;
    /**
     * Example: `VALIDATION_ERROR`
     */
    readonly eventType: string;
    /**
     * Example: `NAME_CONFLICT_VALIDATION`
     */
    readonly validationName: string;
    /**
     * Example: `/Resources/SomeBucketD5B70704`
     */
    readonly documentPath: string;
}
//# sourceMappingURL=changeset-error-fetcher.d.ts.map