/// <reference path="../../../../src/@types/output.d.ts" />
/// <reference path="../../../../src/@types/parameter.d.ts" />
/// <reference path="../../../../src/@types/common.d.ts" />
/// <reference path="../../../../src/@types/decorator.d.ts" />
/// <reference path="../../../../src/@types/expression.d.ts" />
/// <reference path="../../../../src/@types/literal.d.ts" />
/// <reference path="../../../../src/@types/module.d.ts" />
/// <reference path="../../../../src/@types/property.d.ts" />
/// <reference path="../../../../src/@types/statement.d.ts" />
/// <reference path="../../../../src/@types/type.d.ts" />
import type { ST_TypeDef } from 'SmartTS';
import { FrontendType } from '../../../enums/type';
export declare const hasProperties: (typeDef: ST_TypeDef) => typeDef is ({
    type: FrontendType.TRecord;
    properties: import("SmartTS").ST_TypeDefs;
    layout?: import("SmartTS").ST_Layout | import("../../../enums/expression").Layout | undefined;
} & {
    line?: import("SmartTS").FileLineInfo | undefined;
}) | ({
    type: FrontendType.TVariant;
    properties: import("SmartTS").ST_TypeDefs;
    layout?: import("SmartTS").ST_Layout | import("../../../enums/expression").Layout | undefined;
} & {
    line?: import("SmartTS").FileLineInfo | undefined;
});
export declare const isTuple: (typeDef: ST_TypeDef) => typeDef is {
    type: FrontendType.TList | FrontendType.TTuple | FrontendType.TSet;
    innerTypes: ST_TypeDef[];
} & {
    line?: import("SmartTS").FileLineInfo | undefined;
};
export declare const hasOneArg: (typeDef: ST_TypeDef) => typeDef is ({
    type: FrontendType.TOption;
    none: boolean;
    innerType: ST_TypeDef;
} & {
    line?: import("SmartTS").FileLineInfo | undefined;
}) | ({
    type: FrontendType.TOption;
    innerType: ST_TypeDef;
} & {
    line?: import("SmartTS").FileLineInfo | undefined;
});
export declare const isMap: (typeDef: ST_TypeDef) => typeDef is {
    type: FrontendType.TBig_map | FrontendType.TMap;
    keyType: ST_TypeDef;
    valueType: ST_TypeDef;
} & {
    line?: import("SmartTS").FileLineInfo | undefined;
};
export declare const isUnknown: (t: ST_TypeDef) => boolean;
export declare const isFunction: (t: ST_TypeDef) => t is {
    type: FrontendType.TLambda | FrontendType.TFunction;
    inputTypes: Record<string, ST_TypeDef & {
        index: number;
    }>;
    outputType: ST_TypeDef;
} & {
    line?: import("SmartTS").FileLineInfo | undefined;
};
declare const type: {
    hasProperties: (typeDef: ST_TypeDef) => typeDef is ({
        type: FrontendType.TRecord;
        properties: import("SmartTS").ST_TypeDefs;
        layout?: import("SmartTS").ST_Layout | import("../../../enums/expression").Layout | undefined;
    } & {
        line?: import("SmartTS").FileLineInfo | undefined;
    }) | ({
        type: FrontendType.TVariant;
        properties: import("SmartTS").ST_TypeDefs;
        layout?: import("SmartTS").ST_Layout | import("../../../enums/expression").Layout | undefined;
    } & {
        line?: import("SmartTS").FileLineInfo | undefined;
    });
    hasOneArg: (typeDef: ST_TypeDef) => typeDef is ({
        type: FrontendType.TOption;
        none: boolean;
        innerType: ST_TypeDef;
    } & {
        line?: import("SmartTS").FileLineInfo | undefined;
    }) | ({
        type: FrontendType.TOption;
        innerType: ST_TypeDef;
    } & {
        line?: import("SmartTS").FileLineInfo | undefined;
    });
    isTuple: (typeDef: ST_TypeDef) => typeDef is {
        type: FrontendType.TList | FrontendType.TTuple | FrontendType.TSet;
        innerTypes: ST_TypeDef[];
    } & {
        line?: import("SmartTS").FileLineInfo | undefined;
    };
    isMap: (typeDef: ST_TypeDef) => typeDef is {
        type: FrontendType.TBig_map | FrontendType.TMap;
        keyType: ST_TypeDef;
        valueType: ST_TypeDef;
    } & {
        line?: import("SmartTS").FileLineInfo | undefined;
    };
    isUnknown: (t: ST_TypeDef) => boolean;
    isFunction: (t: ST_TypeDef) => t is {
        type: FrontendType.TLambda | FrontendType.TFunction;
        inputTypes: Record<string, ST_TypeDef & {
            index: number;
        }>;
        outputType: ST_TypeDef;
    } & {
        line?: import("SmartTS").FileLineInfo | undefined;
    };
};
export default type;
