import { DiscoveredResource } from '../_common/gen1-app';
export type SupportLevel = 'supported' | 'unsupported' | 'not-applicable';
export interface Support {
    readonly level: SupportLevel;
    readonly note?: string;
}
export declare const supported: () => Support;
export declare const unsupported: (note: string) => Support;
export declare const notApplicable: () => Support;
interface _Assessment {
    readonly generate: Support;
    readonly refactor: Support;
}
export interface ResourceAssessment extends _Assessment {
    readonly resource: DiscoveredResource;
}
export interface FeatureAssessment extends _Assessment {
    readonly feature: DiscoveredFeature;
}
export interface DiscoveredFeature {
    readonly name: string;
    readonly path: string;
}
export declare class Assessment {
    private readonly appName;
    private readonly envName;
    private readonly _resources;
    private readonly _features;
    constructor(appName: string, envName: string);
    recordResource(resource: ResourceAssessment): void;
    recordFeature(feature: FeatureAssessment): void;
    get resources(): readonly ResourceAssessment[];
    get features(): readonly FeatureAssessment[];
    of(resource: DiscoveredResource, step: 'generate' | 'refactor'): Support;
    validFor(step: 'generate' | 'refactor'): boolean;
    render(): string;
    private hasUnsupported;
    private renderResourceTable;
    private renderFeatureTable;
    private static supportText;
}
export {};
//# sourceMappingURL=assessment.d.ts.map