import { IrType } from "@tsonic/frontend"; import type { EmitterContext } from "../types.js"; import type { CSharpTypeAst } from "../core/format/backend-ast/types.js"; export type IterableSourceShape = { readonly elementType: IrType; readonly accessKind: "direct"; } | { readonly elementType: IrType; readonly accessKind: "iteratorMethod" | "iteratorProperty"; }; export declare const getDirectIterableElementType: (type: IrType | undefined, context: EmitterContext) => IrType | undefined; export declare const canPreferAnonymousStructuralTarget: (type: IrType) => boolean; export declare const isSameNominalType: (sourceType: IrType | undefined, targetType: IrType | undefined, context: EmitterContext) => boolean; export declare const getArrayElementType: (type: IrType | undefined, context: EmitterContext) => IrType | undefined; export declare const getSemanticArrayElementType: (type: IrType | undefined, context: EmitterContext) => IrType | undefined; export declare const isObjectLikeTypeAst: (type: CSharpTypeAst | undefined) => boolean; export declare const getDictionaryValueType: (type: IrType | undefined, context: EmitterContext) => IrType | undefined; export declare const getIterableSourceShape: (type: IrType | undefined, context: EmitterContext) => IterableSourceShape | undefined; //# sourceMappingURL=structural-type-shapes.d.ts.map