/**
 * @module subject types (and some enums/constants)
 */
import { DEFAULT_DESCRIPTION_SUBJECT, DEFAULT_NAME_SUBJECT, DEFAULT_UUID_SUBJECT } from './subject-constants.mjs';
import { ObservableCmd, } from '../observable/observable-types.mjs';
import { ObserverCmd } from '../observer/observer-types.mjs';
/**
 * Cmds for interacting with ibgib subject witnesses.
 *
 * this is atow (11/2023) the union of `ObservableCmd` and `ObserverCmd`.
 *
 * @see {ObservableCmd}
 * @see {ObserverCmd}
 * */
export const SubjectCmd = {
    ...ObservableCmd,
    ...ObserverCmd,
};
/**
 * Flags to affect the command's interpretation.
 */
export const SubjectCmdModifier = {
    /**
     * hmm...
     */
    ib: 'ib',
    /**
     * hmm...
     */
    gib: 'gib',
    /**
     * hmm...
     */
    ibgib: 'ibgib',
};
/**
 * Default data values for a Subject.
 *
 * If you change this, please bump the version
 *
 * (but of course won't be the end of the world when this doesn't happen).
 */
export const DEFAULT_SUBJECT_DATA_V1 = {
    version: '1',
    uuid: DEFAULT_UUID_SUBJECT,
    name: DEFAULT_NAME_SUBJECT,
    description: DEFAULT_DESCRIPTION_SUBJECT,
    classname: `Subject_V1`,
    /**
     * if true, then the witness will attempt to persist ALL calls to
     * `witness.witness(...)`.
     */
    persistOptsAndResultIbGibs: false,
    /**
     * allow ibgibs like 42^gib ({ib: 42, gib: 'gib'} with `data` and `rel8ns` undefined)
     */
    allowPrimitiveArgs: true,
    /**
     * witnesses should be guaranteed not to throw uncaught exceptions.
     */
    catchAllErrors: true,
    /**
     * if true, would enable logging of all calls to `witness.witness(...)`
     */
    trace: false,
    // put in your custom defaults here
};
export const DEFAULT_SUBJECT_REL8NS_V1 = undefined;
//# sourceMappingURL=subject-types.mjs.map