import { MichelsonGrammarData } from '../michelson/grammar/MichelsonGrammarData';
import { MichelsonGrammarType } from '../michelson/grammar/MichelsonGrammarType';
declare type MichelineGenericNode<T extends MichelsonGrammarType | MichelsonGrammarData> = MichelinePrimitive<'int'> | MichelinePrimitive<'string'> | MichelinePrimitive<'bytes'> | MichelinePrimitiveApplication<T> | MichelineGenericNode<T>[];
export declare type MichelineNode = MichelineGenericNode<MichelsonGrammarType | MichelsonGrammarData>;
export declare type MichelineTypeNode = MichelineGenericNode<MichelsonGrammarType>;
export declare type MichelineDataNode = MichelineGenericNode<MichelsonGrammarData>;
export declare type MichelinePrimitive<T extends 'int' | 'string' | 'bytes'> = Record<T, string>;
export interface MichelinePrimitiveApplication<T extends MichelsonGrammarType | MichelsonGrammarData> {
    prim: T;
    args?: MichelineGenericNode<T>[];
    annots?: string[];
}
export {};
