///
import Koa from 'koa';
import next from 'next';
import koaBody from 'koa-body';
import { Server } from 'https';
import Sprucebot from '@sprucelabs/spruce-node';
import { ISpruceContext } from './interfaces/ctx';
interface IServeOptions {
sprucebot: Sprucebot;
port: number;
serverHost: string;
interfaceHost: string;
nextConfig: next.ServerOptions;
errors: Record;
servicesDir: string;
utilitiesDir: string;
controllersDir: string;
middlewareDir: string;
listenersDir: string;
sequelizeOptions?: {
runMigrations: boolean;
modelsDir: string;
migrationsDir: string;
options: Record;
};
langDir: string;
staticDir?: string;
bodyParserOptions?: koaBody.IKoaBodyOptions;
slug: string;
logLevel: string;
logUseColors: boolean;
logUseTrace: boolean;
logUseSourcemaps: boolean;
logAsJSON: boolean;
env: string;
packageName: string;
packageVersion: string;
metricsAppKey: string;
metricsUrl: string;
metricsEnabled: boolean;
metricsRequestsDisabled: boolean;
metricsServerStatsDisabled: boolean;
metricsSequelizeDisabled: boolean;
gqlOptions: Record;
testing?: boolean;
}
export interface ISpruceServeSkill {
koa: Koa<{}, ISkillContext>;
server: Server;
}
declare function serve(options: IServeOptions): Promise>;
export default serve;
export { ISpruceModels } from './interfaces/models';
export { ISpruceServices } from './interfaces/services';
export { ISpruceUtilities } from './interfaces/utilities';
export { ISpruceContext } from './interfaces/ctx';
export { ISpruceErrors } from './interfaces/errors';
export { default as SpruceErrors } from './config/errors';
export { ISpruceAuth, ISpruceAuthJob, ISpruceAuthGroup, ISpruceAuthUserLocation, ISpruceAuthOrganization, ISpruceAuthLocation, ISpruceAuthUser } from './interfaces/auth';
export * from './interfaces/bigSearch';
export { default as SpruceSkillService } from './lib/SpruceSkillService';
export { default as SpruceSkillUtility } from './lib/SpruceSkillUtility';
export { default as SpruceCoreModel } from './lib/SpruceModel';
export { default as SpruceTest } from './tests/lib/SpruceTest';
export { FileItem } from './models/FileItem';
export { Group } from './models/Group';
export { Job } from './models/Job';
export { Location } from './models/Location';
export { LocationGroup } from './models/LocationGroup';
export { Organization } from './models/Organization';
export { Skill } from './models/Skill';
export { User } from './models/User';
export { UserGroup } from './models/UserGroup';
export { UserLocation } from './models/UserLocation';
export { UserOrganization } from './models/UserOrganization';
import defaultConfig from './config/default';
export { defaultConfig as SpruceConfig };
export { IMockUser, IMockOrganization, IMockSkill, IMockLocation } from './tests/mocks/SandboxMock';
export { ISpruceGQLTypes, IGQLTypeResolver, IGQLResolvers, IGQLResolver } from './interfaces/gql';
export { IBuildSequelizeResolver } from './gql/helpers';
export { ISpruceAcls } from './interfaces/acls';