/**
 * Explicit Interface Views - Handle As_IInterface pattern for explicit implementations.
 *
 * C# supports explicit interface implementation (EII), where a class implements
 * an interface member explicitly. TypeScript doesn't support EII, so tsbindgen
 * generates special As_IInterface properties that return views of the object.
 *
 * Example:
 * TypeScript: list.As_ICollection.CopyTo(array, 0)
 * C#:         ((ICollection<T>)list).CopyTo(array, 0)
 *
 * @see spec/explicit-interface-views.md for complete documentation
 */
/**
 * Check if a property name matches the explicit view pattern (As_IInterface).
 *
 * @param propertyName - Property name to check
 * @returns True if matches As_IInterface pattern
 */
export declare const isExplicitViewProperty: (propertyName: string) => boolean;
/**
 * Extract interface name from an explicit view property name.
 *
 * @param viewPropertyName - Property name (e.g., "As_ICollection")
 * @returns Interface name (e.g., "ICollection"), or undefined if not a view property
 */
export declare const extractInterfaceNameFromView: (viewPropertyName: string) => string | undefined;
/**
 * Build explicit view property name from interface name.
 *
 * @param interfaceName - Interface name (e.g., "ICollection")
 * @returns View property name (e.g., "As_ICollection")
 */
export declare const buildViewPropertyName: (interfaceName: string) => string;
/**
 * Generate C# interface cast expression for explicit view access.
 *
 * @param objectExpression - C# expression for the object
 * @param interfaceName - CLR interface name (e.g., "System.Collections.ICollection")
 * @returns C# cast expression (e.g., "((ICollection)obj)")
 */
export declare const generateInterfaceCast: (objectExpression: string, interfaceName: string) => string;
/**
 * Generate C# interface cast with generics.
 *
 * @param objectExpression - C# expression for the object
 * @param interfaceName - CLR interface name (e.g., "System.Collections.Generic.ICollection`1")
 * @param genericArguments - Generic type arguments in C# syntax (e.g., ["string"])
 * @returns C# cast expression (e.g., "((ICollection<string>)obj)")
 */
export declare const generateGenericInterfaceCast: (objectExpression: string, interfaceName: string, genericArguments: readonly string[]) => string;
//# sourceMappingURL=explicit-views.d.ts.map