import type { ChannelNode } from "./ir.js"; /** Providers that own native Channel JSX nodes. */ export type NativeProvider = "slack" | "teams"; /** Catalog role used to validate where a provider-native node may appear. */ export type NativeNodeKind = "root" | "block" | "element" | "object" | "action" | "input" | "chart" | "layout" | "preview" | "raw"; /** Internal IR discriminator shared by native JSX factories and codecs. */ export declare const NATIVE_NODE: unique symbol; export interface NativeChannelNode extends ChannelNode { type: typeof NATIVE_NODE; props: Record & { provider: NativeProvider; nativeKind: NativeNodeKind; nativeType: string; }; } /** Create one provider-tagged IR node without serializing its named JSX slots. */ export declare function createNativeNode(provider: NativeProvider, nativeKind: NativeNodeKind, nativeType: string, props: Record): NativeChannelNode; /** Return whether a rendered Channel IR node belongs to a provider catalog. */ export declare function isNativeNode(node: unknown): node is NativeChannelNode; //# sourceMappingURL=native.d.ts.map