import { User } from "../types/user.types.js";
import { Plan, PlanSchema, PlanType } from "../types/plan.types.js";
import * as mongoose$1 from "mongoose";
import { Schema } from "mongoose";

//#region src/schemas/plans.schema.d.ts
declare const planSchema: Schema<PlanSchema, mongoose$1.Model<PlanSchema, any, any, any, (mongoose$1.Document<unknown, any, PlanSchema, any, mongoose$1.DefaultSchemaOptions> & Omit<Plan, "id"> & {
  _id: mongoose$1.Types.ObjectId;
} & Required<{
  _id: mongoose$1.Types.ObjectId;
}> & {
  __v: number;
} & {
  id: string;
}) | (mongoose$1.Document<unknown, any, PlanSchema, any, mongoose$1.DefaultSchemaOptions> & Omit<Plan, "id"> & {
  _id: mongoose$1.Types.ObjectId;
} & Required<{
  _id: mongoose$1.Types.ObjectId;
}> & {
  __v: number;
}), any, PlanSchema>, {}, {}, {}, {}, mongoose$1.DefaultSchemaOptions, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
  id: string;
}, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
  _id: mongoose$1.Types.ObjectId;
} & Required<{
  _id: mongoose$1.Types.ObjectId;
}> & {
  __v: number;
}, "id"> & {
  id: string;
}, {
  type?: mongoose$1.SchemaDefinitionProperty<PlanType, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  createdAt?: mongoose$1.SchemaDefinitionProperty<number, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  updatedAt?: mongoose$1.SchemaDefinitionProperty<number, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  status?: mongoose$1.SchemaDefinitionProperty<"active" | "canceled" | "past_due" | "unpaid" | "incomplete" | "incomplete_expired" | "paused" | "trialing", PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  customerId?: mongoose$1.SchemaDefinitionProperty<string, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  creatorId?: User["id"];
  subscriptionId?: mongoose$1.SchemaDefinitionProperty<string, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  priceId?: mongoose$1.SchemaDefinitionProperty<string, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  period?: mongoose$1.SchemaDefinitionProperty<"MONTHLY" | "YEARLY", PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
  _id?: mongoose$1.SchemaDefinitionProperty<mongoose$1.Types.ObjectId, PlanSchema, mongoose$1.Document<unknown, {}, PlanSchema, {
    id: string;
  }, mongoose$1.DefaultSchemaOptions> & Omit<Omit<Plan, "id"> & {
    _id: mongoose$1.Types.ObjectId;
  } & Required<{
    _id: mongoose$1.Types.ObjectId;
  }> & {
    __v: number;
  }, "id"> & {
    id: string;
  }>;
}, PlanSchema>;
//#endregion
export { planSchema };
//# sourceMappingURL=plans.schema.d.ts.map