import { Snippet } from '@mablhq-internal/typescript-api-client';
export type SnippetDescriptor = InlineSnippetDescriptor | ReusableSnippetDescriptor;
export type LegacyJavaScriptDescriptor = LegacyInlineJavaScriptDescriptor | LegacyReusableSnippetDescriptor;
export type JavaScriptDescriptor = LegacyJavaScriptDescriptor | SnippetDescriptor;
export type ParameterValues = Record<string, string | undefined>;
export interface LegacyInlineJavaScriptDescriptor {
    encodedJS: string;
    actionCode?: string;
}
export interface LegacyReusableSnippetDescriptor {
    snippetInvariantId: string;
    actionCode?: string;
}
export interface InlineSnippetDescriptor {
    inlineSnippet: Omit<Snippet, 'id' | 'invariant_id'>;
    parameterOverrides: ParameterOverride[];
    actionCode?: string;
}
export interface ReusableSnippetDescriptor {
    snippetId: string;
    snippetInvariantId: string;
    parameterOverrides: ParameterOverride[];
    actionCode?: string;
}
export interface ParameterOverride {
    id: string;
    value: string;
    actionCode?: string;
}
export declare function isJavaScriptDescriptor(value: any): value is JavaScriptDescriptor;
export declare function isLegacyInlineJavaScriptDescriptor(value: any): value is LegacyInlineJavaScriptDescriptor;
export declare function isLegacyReusableSnippetDescriptor(value: any): value is LegacyReusableSnippetDescriptor;
export declare function isInlineSnippetDescriptor(value: any): value is InlineSnippetDescriptor;
export declare function isReusableSnippetDescriptor(value: any): value is ReusableSnippetDescriptor;
//# sourceMappingURL=SnippetsDescriptor.d.ts.map