/** * Type testing routines for important constructs. * * These are in a separate file because we need them all over the place (for things like `Stack.isStack` and `Stack.of`) * and they commonly lead to circular dependencies between core files. * * Circular `import type` is fine, circular regular `import` is not. */ import { type IConstruct } from 'constructs'; import type { App } from '../app'; import type { CfnResource } from '../cfn-resource'; import type { NestedStack } from '../nested-stack'; import type { Stack } from '../stack'; import type { Stage } from '../stage'; declare class ConstructType { private readonly sym; constructor(sym: symbol); mark(x: A): void; isMarked(x: any): x is A; } export declare const APP_TYPE: ConstructType; export declare const STACK_TYPE: ConstructType; export declare const STAGE_TYPE: ConstructType; export declare const NESTED_STACK_TYPE: ConstructType; export declare function stackOf(construct: IConstruct): Stack; export declare function stageOf(construct: IConstruct): Stage | undefined; export declare function appOf(construct: IConstruct): App | undefined; /** * Check whether the given object is a CfnResource */ export declare function isCfnResource(x: any): x is CfnResource; export {};