import { IStringOrNull, IStringOrNumber } from './common';
import { ISet, ISuperSet } from './set';
import { IElementGetFunctions } from './elements';
export declare type ICompoundGetFunctionResult = IStringOrNull;
export declare type ICompoundSetArrayItem = (elementGets: IElementGetFunctions) => ICompoundGetFunctionResult;
export declare type ICompoundSet = ISet<ICompoundSetArrayItem>;
export declare type ICompoundSuperSet = ISuperSet<ICompoundSetArrayItem>;
export declare type ICompoundGetFunction = (key?: IStringOrNumber) => ICompoundGetFunctionResult;
export declare type ICompoundSuperGetFunction = (name: string) => ICompoundGetFunction;
export interface ICompounds {
    readonly [name: string]: ICompoundSuperSet | ICompoundSet;
}
export interface ICompoundGetFunctions {
    readonly [name: string]: ICompoundSuperGetFunction | ICompoundGetFunction;
}
